{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Concept Guide"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Overview\n",
    "\n",
    "The semantic token is pre-trained to align EVACLIP-5B on SA-1B masks. This guide shows you how to make the concept weights."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Setup\n",
    "\n",
    "Necessary imports, models and functions for making."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/data/workspace/programs/conda3/lib/python3.8/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
      "  from .autonotebook import tqdm as notebook_tqdm\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Please 'pip install xformers'\n",
      "Please 'pip install xformers'\n",
      "Please 'pip install apex'\n",
      "Please 'pip install xformers'\n"
     ]
    }
   ],
   "source": [
    "import pickle\n",
    "import sys\n",
    "sys.path.append(\"../../EVA/EVA-CLIP/rei\")\n",
    "\n",
    "import torch\n",
    "from eva_clip import create_model_and_transforms, get_tokenizer\n",
    "\n",
    "model_name = 'EVA02-CLIP-bigE-14-plus'\n",
    "# Download from https://github.com/baaivision/EVA/tree/master/EVA-CLIP\n",
    "pretrained = '../models/EVA02_CLIP_E_psz14_plus_s9B.pt'\n",
    "\n",
    "inference_mode = torch.inference_mode()\n",
    "inference_mode.__enter__()\n",
    "\n",
    "def generate_concept_weights(model, tokenizer, device, concepts, templates):\n",
    "    concept_embeds = []\n",
    "    for concept in concepts:\n",
    "        texts = [template.format(concept) for template in templates]\n",
    "        texts = tokenizer(texts).to(device=device)\n",
    "        embeds = model.encode_text(texts).float()\n",
    "        embeds = torch.nn.functional.normalize(embeds, dim=-1)\n",
    "        if len(templates) > 1:\n",
    "            embed = embeds.mean(dim=0)\n",
    "            embed = torch.nn.functional.normalize(embed, dim=-1)\n",
    "        else:\n",
    "            embed = embeds[0]\n",
    "        concept_embeds.append(embed)\n",
    "    return torch.stack(concept_embeds, dim=-1)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Concepts\n",
    "\n",
    "Following concepts are used to pre-train TAP."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "COCO_CLASS_NAMES = [\n",
    "    \"person\",\n",
    "    \"bicycle\",\n",
    "    \"car\",\n",
    "    \"motorcycle\",\n",
    "    \"airplane\",\n",
    "    \"bus\",\n",
    "    \"train\",\n",
    "    \"truck\",\n",
    "    \"boat\",\n",
    "    \"traffic light\",\n",
    "    \"fire hydrant\",\n",
    "    \"stop sign\",\n",
    "    \"parking meter\",\n",
    "    \"bench\",\n",
    "    \"bird\",\n",
    "    \"cat\",\n",
    "    \"dog\",\n",
    "    \"horse\",\n",
    "    \"sheep\",\n",
    "    \"cow\",\n",
    "    \"elephant\",\n",
    "    \"bear\",\n",
    "    \"zebra\",\n",
    "    \"giraffe\",\n",
    "    \"backpack\",\n",
    "    \"umbrella\",\n",
    "    \"handbag\",\n",
    "    \"tie\",\n",
    "    \"suitcase\",\n",
    "    \"frisbee\",\n",
    "    \"ski\",\n",
    "    \"snowboard\",\n",
    "    \"sports ball\",\n",
    "    \"kite\",\n",
    "    \"baseball bat\",\n",
    "    \"baseball glove\",\n",
    "    \"skateboard\",\n",
    "    \"surfboard\",\n",
    "    \"tennis racket\",\n",
    "    \"bottle\",\n",
    "    \"wine glass\",\n",
    "    \"cup\",\n",
    "    \"fork\",\n",
    "    \"knife\",\n",
    "    \"spoon\",\n",
    "    \"bowl\",\n",
    "    \"banana\",\n",
    "    \"apple\",\n",
    "    \"sandwich\",\n",
    "    \"orange\",\n",
    "    \"broccoli\",\n",
    "    \"carrot\",\n",
    "    \"hot dog\",\n",
    "    \"pizza\",\n",
    "    \"donut\",\n",
    "    \"cake\",\n",
    "    \"chair\",\n",
    "    \"couch\",\n",
    "    \"potted plant\",\n",
    "    \"bed\",\n",
    "    \"dining table\",\n",
    "    \"toilet\",\n",
    "    \"tv\",\n",
    "    \"laptop\",\n",
    "    \"mouse\",\n",
    "    \"remote\",\n",
    "    \"keyboard\",\n",
    "    \"cell phone\",\n",
    "    \"microwave\",\n",
    "    \"oven\",\n",
    "    \"toaster\",\n",
    "    \"sink\",\n",
    "    \"refrigerator\",\n",
    "    \"book\",\n",
    "    \"clock\",\n",
    "    \"vase\",\n",
    "    \"scissors\",\n",
    "    \"teddy bear\",\n",
    "    \"hair drier\",\n",
    "    \"toothbrush\",\n",
    "]\n",
    "\n",
    "LVIS_CLASS_NAMES = [\n",
    "    \"aerosol_can\",\n",
    "    \"air_conditioner\",\n",
    "    \"airplane\",\n",
    "    \"alarm_clock\",\n",
    "    \"alcohol\",\n",
    "    \"alligator\",\n",
    "    \"almond\",\n",
    "    \"ambulance\",\n",
    "    \"amplifier\",\n",
    "    \"anklet\",\n",
    "    \"antenna\",\n",
    "    \"apple\",\n",
    "    \"applesauce\",\n",
    "    \"apricot\",\n",
    "    \"apron\",\n",
    "    \"aquarium\",\n",
    "    \"arctic_(type_of_shoe)\",\n",
    "    \"armband\",\n",
    "    \"armchair\",\n",
    "    \"armoire\",\n",
    "    \"armor\",\n",
    "    \"artichoke\",\n",
    "    \"trash_can\",\n",
    "    \"ashtray\",\n",
    "    \"asparagus\",\n",
    "    \"atomizer\",\n",
    "    \"avocado\",\n",
    "    \"award\",\n",
    "    \"awning\",\n",
    "    \"ax\",\n",
    "    \"baboon\",\n",
    "    \"baby_buggy\",\n",
    "    \"basketball_backboard\",\n",
    "    \"backpack\",\n",
    "    \"handbag\",\n",
    "    \"suitcase\",\n",
    "    \"bagel\",\n",
    "    \"bagpipe\",\n",
    "    \"baguet\",\n",
    "    \"bait\",\n",
    "    \"ball\",\n",
    "    \"ballet_skirt\",\n",
    "    \"balloon\",\n",
    "    \"bamboo\",\n",
    "    \"banana\",\n",
    "    \"Band_Aid\",\n",
    "    \"bandage\",\n",
    "    \"bandanna\",\n",
    "    \"banjo\",\n",
    "    \"banner\",\n",
    "    \"barbell\",\n",
    "    \"barge\",\n",
    "    \"barrel\",\n",
    "    \"barrette\",\n",
    "    \"barrow\",\n",
    "    \"baseball_base\",\n",
    "    \"baseball\",\n",
    "    \"baseball_bat\",\n",
    "    \"baseball_cap\",\n",
    "    \"baseball_glove\",\n",
    "    \"basket\",\n",
    "    \"basketball\",\n",
    "    \"bass_horn\",\n",
    "    \"bat_(animal)\",\n",
    "    \"bath_mat\",\n",
    "    \"bath_towel\",\n",
    "    \"bathrobe\",\n",
    "    \"bathtub\",\n",
    "    \"batter_(food)\",\n",
    "    \"battery\",\n",
    "    \"beachball\",\n",
    "    \"bead\",\n",
    "    \"bean_curd\",\n",
    "    \"beanbag\",\n",
    "    \"beanie\",\n",
    "    \"bear\",\n",
    "    \"bed\",\n",
    "    \"bedpan\",\n",
    "    \"bedspread\",\n",
    "    \"cow\",\n",
    "    \"beef_(food)\",\n",
    "    \"beeper\",\n",
    "    \"beer_bottle\",\n",
    "    \"beer_can\",\n",
    "    \"beetle\",\n",
    "    \"bell\",\n",
    "    \"bell_pepper\",\n",
    "    \"belt\",\n",
    "    \"belt_buckle\",\n",
    "    \"bench\",\n",
    "    \"beret\",\n",
    "    \"bib\",\n",
    "    \"Bible\",\n",
    "    \"bicycle\",\n",
    "    \"visor\",\n",
    "    \"billboard\",\n",
    "    \"binder\",\n",
    "    \"binoculars\",\n",
    "    \"bird\",\n",
    "    \"birdfeeder\",\n",
    "    \"birdbath\",\n",
    "    \"birdcage\",\n",
    "    \"birdhouse\",\n",
    "    \"birthday_cake\",\n",
    "    \"birthday_card\",\n",
    "    \"pirate_flag\",\n",
    "    \"black_sheep\",\n",
    "    \"blackberry\",\n",
    "    \"blackboard\",\n",
    "    \"blanket\",\n",
    "    \"blazer\",\n",
    "    \"blender\",\n",
    "    \"blimp\",\n",
    "    \"blinker\",\n",
    "    \"blouse\",\n",
    "    \"blueberry\",\n",
    "    \"gameboard\",\n",
    "    \"boat\",\n",
    "    \"bob\",\n",
    "    \"bobbin\",\n",
    "    \"bobby_pin\",\n",
    "    \"boiled_egg\",\n",
    "    \"bolo_tie\",\n",
    "    \"deadbolt\",\n",
    "    \"bolt\",\n",
    "    \"bonnet\",\n",
    "    \"book\",\n",
    "    \"bookcase\",\n",
    "    \"booklet\",\n",
    "    \"bookmark\",\n",
    "    \"boom_microphone\",\n",
    "    \"boot\",\n",
    "    \"bottle\",\n",
    "    \"bottle_opener\",\n",
    "    \"bouquet\",\n",
    "    \"bow_(weapon)\",\n",
    "    \"bow_(decorative_ribbons)\",\n",
    "    \"bow-tie\",\n",
    "    \"bowl\",\n",
    "    \"pipe_bowl\",\n",
    "    \"bowler_hat\",\n",
    "    \"bowling_ball\",\n",
    "    \"box\",\n",
    "    \"boxing_glove\",\n",
    "    \"suspenders\",\n",
    "    \"bracelet\",\n",
    "    \"brass_plaque\",\n",
    "    \"brassiere\",\n",
    "    \"bread-bin\",\n",
    "    \"bread\",\n",
    "    \"breechcloth\",\n",
    "    \"bridal_gown\",\n",
    "    \"briefcase\",\n",
    "    \"broccoli\",\n",
    "    \"broach\",\n",
    "    \"broom\",\n",
    "    \"brownie\",\n",
    "    \"brussels_sprouts\",\n",
    "    \"bubble_gum\",\n",
    "    \"bucket\",\n",
    "    \"horse_buggy\",\n",
    "    \"bull\",\n",
    "    \"bulldog\",\n",
    "    \"bulldozer\",\n",
    "    \"bullet_train\",\n",
    "    \"bulletin_board\",\n",
    "    \"bulletproof_vest\",\n",
    "    \"bullhorn\",\n",
    "    \"bun\",\n",
    "    \"bunk_bed\",\n",
    "    \"buoy\",\n",
    "    \"burrito\",\n",
    "    \"bus_(vehicle)\",\n",
    "    \"business_card\",\n",
    "    \"butter\",\n",
    "    \"butterfly\",\n",
    "    \"button\",\n",
    "    \"cab_(taxi)\",\n",
    "    \"cabana\",\n",
    "    \"cabin_car\",\n",
    "    \"cabinet\",\n",
    "    \"locker\",\n",
    "    \"cake\",\n",
    "    \"calculator\",\n",
    "    \"calendar\",\n",
    "    \"calf\",\n",
    "    \"camcorder\",\n",
    "    \"camel\",\n",
    "    \"camera\",\n",
    "    \"camera_lens\",\n",
    "    \"camper_(vehicle)\",\n",
    "    \"can\",\n",
    "    \"can_opener\",\n",
    "    \"candle\",\n",
    "    \"candle_holder\",\n",
    "    \"candy_bar\",\n",
    "    \"candy_cane\",\n",
    "    \"walking_cane\",\n",
    "    \"canister\",\n",
    "    \"canoe\",\n",
    "    \"cantaloup\",\n",
    "    \"canteen\",\n",
    "    \"cap_(headwear)\",\n",
    "    \"bottle_cap\",\n",
    "    \"cape\",\n",
    "    \"cappuccino\",\n",
    "    \"car_(automobile)\",\n",
    "    \"railcar_(part_of_a_train)\",\n",
    "    \"elevator_car\",\n",
    "    \"car_battery\",\n",
    "    \"identity_card\",\n",
    "    \"card\",\n",
    "    \"cardigan\",\n",
    "    \"cargo_ship\",\n",
    "    \"carnation\",\n",
    "    \"horse_carriage\",\n",
    "    \"carrot\",\n",
    "    \"tote_bag\",\n",
    "    \"cart\",\n",
    "    \"carton\",\n",
    "    \"cash_register\",\n",
    "    \"casserole\",\n",
    "    \"cassette\",\n",
    "    \"cast\",\n",
    "    \"cat\",\n",
    "    \"cauliflower\",\n",
    "    \"cayenne_(spice)\",\n",
    "    \"CD_player\",\n",
    "    \"celery\",\n",
    "    \"cellular_telephone\",\n",
    "    \"chain_mail\",\n",
    "    \"chair\",\n",
    "    \"chaise_longue\",\n",
    "    \"chalice\",\n",
    "    \"chandelier\",\n",
    "    \"chap\",\n",
    "    \"checkbook\",\n",
    "    \"checkerboard\",\n",
    "    \"cherry\",\n",
    "    \"chessboard\",\n",
    "    \"chicken_(animal)\",\n",
    "    \"chickpea\",\n",
    "    \"chili_(vegetable)\",\n",
    "    \"chime\",\n",
    "    \"chinaware\",\n",
    "    \"crisp_(potato_chip)\",\n",
    "    \"poker_chip\",\n",
    "    \"chocolate_bar\",\n",
    "    \"chocolate_cake\",\n",
    "    \"chocolate_milk\",\n",
    "    \"chocolate_mousse\",\n",
    "    \"choker\",\n",
    "    \"chopping_board\",\n",
    "    \"chopstick\",\n",
    "    \"Christmas_tree\",\n",
    "    \"slide\",\n",
    "    \"cider\",\n",
    "    \"cigar_box\",\n",
    "    \"cigarette\",\n",
    "    \"cigarette_case\",\n",
    "    \"cistern\",\n",
    "    \"clarinet\",\n",
    "    \"clasp\",\n",
    "    \"cleansing_agent\",\n",
    "    \"cleat_(for_securing_rope)\",\n",
    "    \"clementine\",\n",
    "    \"clip\",\n",
    "    \"clipboard\",\n",
    "    \"clippers_(for_plants)\",\n",
    "    \"cloak\",\n",
    "    \"clock\",\n",
    "    \"clock_tower\",\n",
    "    \"clothes_hamper\",\n",
    "    \"clothespin\",\n",
    "    \"clutch_bag\",\n",
    "    \"coaster\",\n",
    "    \"coat\",\n",
    "    \"coat_hanger\",\n",
    "    \"coatrack\",\n",
    "    \"cock\",\n",
    "    \"cockroach\",\n",
    "    \"cocoa_(beverage)\",\n",
    "    \"coconut\",\n",
    "    \"coffee_maker\",\n",
    "    \"coffee_table\",\n",
    "    \"coffeepot\",\n",
    "    \"coil\",\n",
    "    \"coin\",\n",
    "    \"colander\",\n",
    "    \"coleslaw\",\n",
    "    \"coloring_material\",\n",
    "    \"combination_lock\",\n",
    "    \"pacifier\",\n",
    "    \"comic_book\",\n",
    "    \"compass\",\n",
    "    \"computer_keyboard\",\n",
    "    \"condiment\",\n",
    "    \"cone\",\n",
    "    \"control\",\n",
    "    \"convertible_(automobile)\",\n",
    "    \"sofa_bed\",\n",
    "    \"cooker\",\n",
    "    \"cookie\",\n",
    "    \"cooking_utensil\",\n",
    "    \"cooler_(for_food)\",\n",
    "    \"cork_(bottle_plug)\",\n",
    "    \"corkboard\",\n",
    "    \"corkscrew\",\n",
    "    \"edible_corn\",\n",
    "    \"cornbread\",\n",
    "    \"cornet\",\n",
    "    \"cornice\",\n",
    "    \"cornmeal\",\n",
    "    \"corset\",\n",
    "    \"costume\",\n",
    "    \"cougar\",\n",
    "    \"coverall\",\n",
    "    \"cowbell\",\n",
    "    \"cowboy_hat\",\n",
    "    \"crab_(animal)\",\n",
    "    \"crabmeat\",\n",
    "    \"cracker\",\n",
    "    \"crape\",\n",
    "    \"crate\",\n",
    "    \"crayon\",\n",
    "    \"cream_pitcher\",\n",
    "    \"crescent_roll\",\n",
    "    \"crib\",\n",
    "    \"crock_pot\",\n",
    "    \"crossbar\",\n",
    "    \"crouton\",\n",
    "    \"crow\",\n",
    "    \"crowbar\",\n",
    "    \"crown\",\n",
    "    \"crucifix\",\n",
    "    \"cruise_ship\",\n",
    "    \"police_cruiser\",\n",
    "    \"crumb\",\n",
    "    \"crutch\",\n",
    "    \"cub_(animal)\",\n",
    "    \"cube\",\n",
    "    \"cucumber\",\n",
    "    \"cufflink\",\n",
    "    \"cup\",\n",
    "    \"trophy_cup\",\n",
    "    \"cupboard\",\n",
    "    \"cupcake\",\n",
    "    \"hair_curler\",\n",
    "    \"curling_iron\",\n",
    "    \"curtain\",\n",
    "    \"cushion\",\n",
    "    \"cylinder\",\n",
    "    \"cymbal\",\n",
    "    \"dagger\",\n",
    "    \"dalmatian\",\n",
    "    \"dartboard\",\n",
    "    \"date_(fruit)\",\n",
    "    \"deck_chair\",\n",
    "    \"deer\",\n",
    "    \"dental_floss\",\n",
    "    \"desk\",\n",
    "    \"detergent\",\n",
    "    \"diaper\",\n",
    "    \"diary\",\n",
    "    \"die\",\n",
    "    \"dinghy\",\n",
    "    \"dining_table\",\n",
    "    \"tux\",\n",
    "    \"dish\",\n",
    "    \"dish_antenna\",\n",
    "    \"dishrag\",\n",
    "    \"dishtowel\",\n",
    "    \"dishwasher\",\n",
    "    \"dishwasher_detergent\",\n",
    "    \"dispenser\",\n",
    "    \"diving_board\",\n",
    "    \"Dixie_cup\",\n",
    "    \"dog\",\n",
    "    \"dog_collar\",\n",
    "    \"doll\",\n",
    "    \"dollar\",\n",
    "    \"dollhouse\",\n",
    "    \"dolphin\",\n",
    "    \"domestic_ass\",\n",
    "    \"doorknob\",\n",
    "    \"doormat\",\n",
    "    \"doughnut\",\n",
    "    \"dove\",\n",
    "    \"dragonfly\",\n",
    "    \"drawer\",\n",
    "    \"underdrawers\",\n",
    "    \"dress\",\n",
    "    \"dress_hat\",\n",
    "    \"dress_suit\",\n",
    "    \"dresser\",\n",
    "    \"drill\",\n",
    "    \"drone\",\n",
    "    \"dropper\",\n",
    "    \"drum_(musical_instrument)\",\n",
    "    \"drumstick\",\n",
    "    \"duck\",\n",
    "    \"duckling\",\n",
    "    \"duct_tape\",\n",
    "    \"duffel_bag\",\n",
    "    \"dumbbell\",\n",
    "    \"dumpster\",\n",
    "    \"dustpan\",\n",
    "    \"eagle\",\n",
    "    \"earphone\",\n",
    "    \"earplug\",\n",
    "    \"earring\",\n",
    "    \"easel\",\n",
    "    \"eclair\",\n",
    "    \"eel\",\n",
    "    \"egg\",\n",
    "    \"egg_roll\",\n",
    "    \"egg_yolk\",\n",
    "    \"eggbeater\",\n",
    "    \"eggplant\",\n",
    "    \"electric_chair\",\n",
    "    \"refrigerator\",\n",
    "    \"elephant\",\n",
    "    \"elk\",\n",
    "    \"envelope\",\n",
    "    \"eraser\",\n",
    "    \"escargot\",\n",
    "    \"eyepatch\",\n",
    "    \"falcon\",\n",
    "    \"fan\",\n",
    "    \"faucet\",\n",
    "    \"fedora\",\n",
    "    \"ferret\",\n",
    "    \"Ferris_wheel\",\n",
    "    \"ferry\",\n",
    "    \"fig_(fruit)\",\n",
    "    \"fighter_jet\",\n",
    "    \"figurine\",\n",
    "    \"file_cabinet\",\n",
    "    \"file_(tool)\",\n",
    "    \"fire_alarm\",\n",
    "    \"fire_engine\",\n",
    "    \"fire_extinguisher\",\n",
    "    \"fire_hose\",\n",
    "    \"fireplace\",\n",
    "    \"fireplug\",\n",
    "    \"first-aid_kit\",\n",
    "    \"fish\",\n",
    "    \"fish_(food)\",\n",
    "    \"fishbowl\",\n",
    "    \"fishing_rod\",\n",
    "    \"flag\",\n",
    "    \"flagpole\",\n",
    "    \"flamingo\",\n",
    "    \"flannel\",\n",
    "    \"flap\",\n",
    "    \"flash\",\n",
    "    \"flashlight\",\n",
    "    \"fleece\",\n",
    "    \"flip-flop_(sandal)\",\n",
    "    \"flipper_(footwear)\",\n",
    "    \"flower_arrangement\",\n",
    "    \"flute_glass\",\n",
    "    \"foal\",\n",
    "    \"folding_chair\",\n",
    "    \"food_processor\",\n",
    "    \"football_(American)\",\n",
    "    \"football_helmet\",\n",
    "    \"footstool\",\n",
    "    \"fork\",\n",
    "    \"forklift\",\n",
    "    \"freight_car\",\n",
    "    \"French_toast\",\n",
    "    \"freshener\",\n",
    "    \"frisbee\",\n",
    "    \"frog\",\n",
    "    \"fruit_juice\",\n",
    "    \"frying_pan\",\n",
    "    \"fudge\",\n",
    "    \"funnel\",\n",
    "    \"futon\",\n",
    "    \"gag\",\n",
    "    \"garbage\",\n",
    "    \"garbage_truck\",\n",
    "    \"garden_hose\",\n",
    "    \"gargle\",\n",
    "    \"gargoyle\",\n",
    "    \"garlic\",\n",
    "    \"gasmask\",\n",
    "    \"gazelle\",\n",
    "    \"gelatin\",\n",
    "    \"gemstone\",\n",
    "    \"generator\",\n",
    "    \"giant_panda\",\n",
    "    \"gift_wrap\",\n",
    "    \"ginger\",\n",
    "    \"giraffe\",\n",
    "    \"cincture\",\n",
    "    \"glass_(drink_container)\",\n",
    "    \"globe\",\n",
    "    \"glove\",\n",
    "    \"goat\",\n",
    "    \"goggles\",\n",
    "    \"goldfish\",\n",
    "    \"golf_club\",\n",
    "    \"golfcart\",\n",
    "    \"gondola_(boat)\",\n",
    "    \"goose\",\n",
    "    \"gorilla\",\n",
    "    \"gourd\",\n",
    "    \"grape\",\n",
    "    \"grater\",\n",
    "    \"gravestone\",\n",
    "    \"gravy_boat\",\n",
    "    \"green_bean\",\n",
    "    \"green_onion\",\n",
    "    \"griddle\",\n",
    "    \"grill\",\n",
    "    \"grits\",\n",
    "    \"grizzly\",\n",
    "    \"grocery_bag\",\n",
    "    \"guitar\",\n",
    "    \"gull\",\n",
    "    \"gun\",\n",
    "    \"hairbrush\",\n",
    "    \"hairnet\",\n",
    "    \"hairpin\",\n",
    "    \"halter_top\",\n",
    "    \"ham\",\n",
    "    \"hamburger\",\n",
    "    \"hammer\",\n",
    "    \"hammock\",\n",
    "    \"hamper\",\n",
    "    \"hamster\",\n",
    "    \"hair_dryer\",\n",
    "    \"hand_glass\",\n",
    "    \"hand_towel\",\n",
    "    \"handcart\",\n",
    "    \"handcuff\",\n",
    "    \"handkerchief\",\n",
    "    \"handle\",\n",
    "    \"handsaw\",\n",
    "    \"hardback_book\",\n",
    "    \"harmonium\",\n",
    "    \"hat\",\n",
    "    \"hatbox\",\n",
    "    \"veil\",\n",
    "    \"headband\",\n",
    "    \"headboard\",\n",
    "    \"headlight\",\n",
    "    \"headscarf\",\n",
    "    \"headset\",\n",
    "    \"headstall_(for_horses)\",\n",
    "    \"heart\",\n",
    "    \"heater\",\n",
    "    \"helicopter\",\n",
    "    \"helmet\",\n",
    "    \"heron\",\n",
    "    \"highchair\",\n",
    "    \"hinge\",\n",
    "    \"hippopotamus\",\n",
    "    \"hockey_stick\",\n",
    "    \"hog\",\n",
    "    \"home_plate_(baseball)\",\n",
    "    \"honey\",\n",
    "    \"fume_hood\",\n",
    "    \"hook\",\n",
    "    \"hookah\",\n",
    "    \"hornet\",\n",
    "    \"horse\",\n",
    "    \"hose\",\n",
    "    \"hot-air_balloon\",\n",
    "    \"hotplate\",\n",
    "    \"hot_sauce\",\n",
    "    \"hourglass\",\n",
    "    \"houseboat\",\n",
    "    \"hummingbird\",\n",
    "    \"hummus\",\n",
    "    \"polar_bear\",\n",
    "    \"icecream\",\n",
    "    \"popsicle\",\n",
    "    \"ice_maker\",\n",
    "    \"ice_pack\",\n",
    "    \"ice_skate\",\n",
    "    \"igniter\",\n",
    "    \"inhaler\",\n",
    "    \"iPod\",\n",
    "    \"iron_(for_clothing)\",\n",
    "    \"ironing_board\",\n",
    "    \"jacket\",\n",
    "    \"jam\",\n",
    "    \"jar\",\n",
    "    \"jean\",\n",
    "    \"jeep\",\n",
    "    \"jelly_bean\",\n",
    "    \"jersey\",\n",
    "    \"jet_plane\",\n",
    "    \"jewel\",\n",
    "    \"jewelry\",\n",
    "    \"joystick\",\n",
    "    \"jumpsuit\",\n",
    "    \"kayak\",\n",
    "    \"keg\",\n",
    "    \"kennel\",\n",
    "    \"kettle\",\n",
    "    \"key\",\n",
    "    \"keycard\",\n",
    "    \"kilt\",\n",
    "    \"kimono\",\n",
    "    \"kitchen_sink\",\n",
    "    \"kitchen_table\",\n",
    "    \"kite\",\n",
    "    \"kitten\",\n",
    "    \"kiwi_fruit\",\n",
    "    \"knee_pad\",\n",
    "    \"knife\",\n",
    "    \"knitting_needle\",\n",
    "    \"knob\",\n",
    "    \"knocker_(on_a_door)\",\n",
    "    \"koala\",\n",
    "    \"lab_coat\",\n",
    "    \"ladder\",\n",
    "    \"ladle\",\n",
    "    \"ladybug\",\n",
    "    \"lamb_(animal)\",\n",
    "    \"lamb-chop\",\n",
    "    \"lamp\",\n",
    "    \"lamppost\",\n",
    "    \"lampshade\",\n",
    "    \"lantern\",\n",
    "    \"lanyard\",\n",
    "    \"laptop_computer\",\n",
    "    \"lasagna\",\n",
    "    \"latch\",\n",
    "    \"lawn_mower\",\n",
    "    \"leather\",\n",
    "    \"legging_(clothing)\",\n",
    "    \"Lego\",\n",
    "    \"legume\",\n",
    "    \"lemon\",\n",
    "    \"lemonade\",\n",
    "    \"lettuce\",\n",
    "    \"license_plate\",\n",
    "    \"life_buoy\",\n",
    "    \"life_jacket\",\n",
    "    \"lightbulb\",\n",
    "    \"lightning_rod\",\n",
    "    \"lime\",\n",
    "    \"limousine\",\n",
    "    \"lion\",\n",
    "    \"lip_balm\",\n",
    "    \"liquor\",\n",
    "    \"lizard\",\n",
    "    \"log\",\n",
    "    \"lollipop\",\n",
    "    \"speaker_(stereo_equipment)\",\n",
    "    \"loveseat\",\n",
    "    \"machine_gun\",\n",
    "    \"magazine\",\n",
    "    \"magnet\",\n",
    "    \"mail_slot\",\n",
    "    \"mailbox_(at_home)\",\n",
    "    \"mallard\",\n",
    "    \"mallet\",\n",
    "    \"mammoth\",\n",
    "    \"manatee\",\n",
    "    \"mandarin_orange\",\n",
    "    \"manger\",\n",
    "    \"manhole\",\n",
    "    \"map\",\n",
    "    \"marker\",\n",
    "    \"martini\",\n",
    "    \"mascot\",\n",
    "    \"mashed_potato\",\n",
    "    \"masher\",\n",
    "    \"mask\",\n",
    "    \"mast\",\n",
    "    \"mat_(gym_equipment)\",\n",
    "    \"matchbox\",\n",
    "    \"mattress\",\n",
    "    \"measuring_cup\",\n",
    "    \"measuring_stick\",\n",
    "    \"meatball\",\n",
    "    \"medicine\",\n",
    "    \"melon\",\n",
    "    \"microphone\",\n",
    "    \"microscope\",\n",
    "    \"microwave_oven\",\n",
    "    \"milestone\",\n",
    "    \"milk\",\n",
    "    \"milk_can\",\n",
    "    \"milkshake\",\n",
    "    \"minivan\",\n",
    "    \"mint_candy\",\n",
    "    \"mirror\",\n",
    "    \"mitten\",\n",
    "    \"mixer_(kitchen_tool)\",\n",
    "    \"money\",\n",
    "    \"monitor_(computer_equipment) computer_monitor\",\n",
    "    \"monkey\",\n",
    "    \"motor\",\n",
    "    \"motor_scooter\",\n",
    "    \"motor_vehicle\",\n",
    "    \"motorcycle\",\n",
    "    \"mound_(baseball)\",\n",
    "    \"mouse_(computer_equipment)\",\n",
    "    \"mousepad\",\n",
    "    \"muffin\",\n",
    "    \"mug\",\n",
    "    \"mushroom\",\n",
    "    \"music_stool\",\n",
    "    \"musical_instrument\",\n",
    "    \"nailfile\",\n",
    "    \"napkin\",\n",
    "    \"neckerchief\",\n",
    "    \"necklace\",\n",
    "    \"necktie\",\n",
    "    \"needle\",\n",
    "    \"nest\",\n",
    "    \"newspaper\",\n",
    "    \"newsstand\",\n",
    "    \"nightshirt\",\n",
    "    \"nosebag_(for_animals)\",\n",
    "    \"noseband_(for_animals)\",\n",
    "    \"notebook\",\n",
    "    \"notepad\",\n",
    "    \"nut\",\n",
    "    \"nutcracker\",\n",
    "    \"oar\",\n",
    "    \"octopus_(food)\",\n",
    "    \"octopus_(animal)\",\n",
    "    \"oil_lamp\",\n",
    "    \"olive_oil\",\n",
    "    \"omelet\",\n",
    "    \"onion\",\n",
    "    \"orange_(fruit)\",\n",
    "    \"orange_juice\",\n",
    "    \"ostrich\",\n",
    "    \"ottoman\",\n",
    "    \"oven\",\n",
    "    \"overalls_(clothing)\",\n",
    "    \"owl\",\n",
    "    \"packet\",\n",
    "    \"inkpad\",\n",
    "    \"pad\",\n",
    "    \"paddle\",\n",
    "    \"padlock\",\n",
    "    \"paintbrush\",\n",
    "    \"painting\",\n",
    "    \"pajamas\",\n",
    "    \"palette\",\n",
    "    \"pan_(for_cooking)\",\n",
    "    \"pan_(metal_container)\",\n",
    "    \"pancake\",\n",
    "    \"pantyhose\",\n",
    "    \"papaya\",\n",
    "    \"paper_plate\",\n",
    "    \"paper_towel\",\n",
    "    \"paperback_book\",\n",
    "    \"paperweight\",\n",
    "    \"parachute\",\n",
    "    \"parakeet\",\n",
    "    \"parasail_(sports)\",\n",
    "    \"parasol\",\n",
    "    \"parchment\",\n",
    "    \"parka\",\n",
    "    \"parking_meter\",\n",
    "    \"parrot\",\n",
    "    \"passenger_car_(part_of_a_train)\",\n",
    "    \"passenger_ship\",\n",
    "    \"passport\",\n",
    "    \"pastry\",\n",
    "    \"patty_(food)\",\n",
    "    \"pea_(food)\",\n",
    "    \"peach\",\n",
    "    \"peanut_butter\",\n",
    "    \"pear\",\n",
    "    \"peeler_(tool_for_fruit_and_vegetables)\",\n",
    "    \"wooden_leg\",\n",
    "    \"pegboard\",\n",
    "    \"pelican\",\n",
    "    \"pen\",\n",
    "    \"pencil\",\n",
    "    \"pencil_box\",\n",
    "    \"pencil_sharpener\",\n",
    "    \"pendulum\",\n",
    "    \"penguin\",\n",
    "    \"pennant\",\n",
    "    \"penny_(coin)\",\n",
    "    \"pepper\",\n",
    "    \"pepper_mill\",\n",
    "    \"perfume\",\n",
    "    \"persimmon\",\n",
    "    \"person\",\n",
    "    \"pet\",\n",
    "    \"pew_(church_bench)\",\n",
    "    \"phonebook\",\n",
    "    \"phonograph_record\",\n",
    "    \"piano\",\n",
    "    \"pickle\",\n",
    "    \"pickup_truck\",\n",
    "    \"pie\",\n",
    "    \"pigeon\",\n",
    "    \"piggy_bank\",\n",
    "    \"pillow\",\n",
    "    \"pin_(non_jewelry)\",\n",
    "    \"pineapple\",\n",
    "    \"pinecone\",\n",
    "    \"ping-pong_ball\",\n",
    "    \"pinwheel\",\n",
    "    \"tobacco_pipe\",\n",
    "    \"pipe\",\n",
    "    \"pistol\",\n",
    "    \"pita_(bread)\",\n",
    "    \"pitcher_(vessel_for_liquid)\",\n",
    "    \"pitchfork\",\n",
    "    \"pizza\",\n",
    "    \"place_mat\",\n",
    "    \"plate\",\n",
    "    \"platter\",\n",
    "    \"playpen\",\n",
    "    \"pliers\",\n",
    "    \"plow_(farm_equipment)\",\n",
    "    \"plume\",\n",
    "    \"pocket_watch\",\n",
    "    \"pocketknife\",\n",
    "    \"poker_(fire_stirring_tool)\",\n",
    "    \"pole\",\n",
    "    \"polo_shirt\",\n",
    "    \"poncho\",\n",
    "    \"pony\",\n",
    "    \"pool_table\",\n",
    "    \"pop_(soda)\",\n",
    "    \"postbox_(public)\",\n",
    "    \"postcard\",\n",
    "    \"poster\",\n",
    "    \"pot\",\n",
    "    \"flowerpot\",\n",
    "    \"potato\",\n",
    "    \"potholder\",\n",
    "    \"pottery\",\n",
    "    \"pouch\",\n",
    "    \"power_shovel\",\n",
    "    \"prawn\",\n",
    "    \"pretzel\",\n",
    "    \"printer\",\n",
    "    \"projectile_(weapon)\",\n",
    "    \"projector\",\n",
    "    \"propeller\",\n",
    "    \"prune\",\n",
    "    \"pudding\",\n",
    "    \"puffer_(fish)\",\n",
    "    \"puffin\",\n",
    "    \"pug-dog\",\n",
    "    \"pumpkin\",\n",
    "    \"puncher\",\n",
    "    \"puppet\",\n",
    "    \"puppy\",\n",
    "    \"quesadilla\",\n",
    "    \"quiche\",\n",
    "    \"quilt\",\n",
    "    \"rabbit\",\n",
    "    \"race_car\",\n",
    "    \"racket\",\n",
    "    \"radar\",\n",
    "    \"radiator\",\n",
    "    \"radio_receiver\",\n",
    "    \"radish\",\n",
    "    \"raft\",\n",
    "    \"rag_doll\",\n",
    "    \"raincoat\",\n",
    "    \"ram_(animal)\",\n",
    "    \"raspberry\",\n",
    "    \"rat\",\n",
    "    \"razorblade\",\n",
    "    \"reamer_(juicer)\",\n",
    "    \"rearview_mirror\",\n",
    "    \"receipt\",\n",
    "    \"recliner\",\n",
    "    \"record_player\",\n",
    "    \"reflector\",\n",
    "    \"remote_control\",\n",
    "    \"rhinoceros\",\n",
    "    \"rib_(food)\",\n",
    "    \"rifle\",\n",
    "    \"ring\",\n",
    "    \"river_boat\",\n",
    "    \"road_map\",\n",
    "    \"robe\",\n",
    "    \"rocking_chair\",\n",
    "    \"rodent\",\n",
    "    \"roller_skate\",\n",
    "    \"Rollerblade\",\n",
    "    \"rolling_pin\",\n",
    "    \"root_beer\",\n",
    "    \"router_(computer_equipment)\",\n",
    "    \"rubber_band\",\n",
    "    \"runner_(carpet)\",\n",
    "    \"plastic_bag\",\n",
    "    \"saddle_(on_an_animal)\",\n",
    "    \"saddle_blanket\",\n",
    "    \"saddlebag\",\n",
    "    \"safety_pin\",\n",
    "    \"sail\",\n",
    "    \"salad\",\n",
    "    \"salad_plate\",\n",
    "    \"salami\",\n",
    "    \"salmon_(fish)\",\n",
    "    \"salmon_(food)\",\n",
    "    \"salsa\",\n",
    "    \"saltshaker\",\n",
    "    \"sandal_(type_of_shoe)\",\n",
    "    \"sandwich\",\n",
    "    \"satchel\",\n",
    "    \"saucepan\",\n",
    "    \"saucer\",\n",
    "    \"sausage\",\n",
    "    \"sawhorse\",\n",
    "    \"saxophone\",\n",
    "    \"scale_(measuring_instrument)\",\n",
    "    \"scarecrow\",\n",
    "    \"scarf\",\n",
    "    \"school_bus\",\n",
    "    \"scissors\",\n",
    "    \"scoreboard\",\n",
    "    \"scraper\",\n",
    "    \"screwdriver\",\n",
    "    \"scrubbing_brush\",\n",
    "    \"sculpture\",\n",
    "    \"seabird\",\n",
    "    \"seahorse\",\n",
    "    \"seaplane\",\n",
    "    \"seashell\",\n",
    "    \"sewing_machine\",\n",
    "    \"shaker\",\n",
    "    \"shampoo\",\n",
    "    \"shark\",\n",
    "    \"sharpener\",\n",
    "    \"Sharpie\",\n",
    "    \"shaver_(electric)\",\n",
    "    \"shaving_cream\",\n",
    "    \"shawl\",\n",
    "    \"shears\",\n",
    "    \"sheep\",\n",
    "    \"shepherd_dog\",\n",
    "    \"sherbert\",\n",
    "    \"shield\",\n",
    "    \"shirt\",\n",
    "    \"shoe\",\n",
    "    \"shopping_bag\",\n",
    "    \"shopping_cart\",\n",
    "    \"short_pants\",\n",
    "    \"shot_glass\",\n",
    "    \"shoulder_bag\",\n",
    "    \"shovel\",\n",
    "    \"shower_head\",\n",
    "    \"shower_cap\",\n",
    "    \"shower_curtain\",\n",
    "    \"shredder_(for_paper)\",\n",
    "    \"signboard\",\n",
    "    \"silo\",\n",
    "    \"sink\",\n",
    "    \"skateboard\",\n",
    "    \"skewer\",\n",
    "    \"ski\",\n",
    "    \"ski_boot\",\n",
    "    \"ski_parka\",\n",
    "    \"ski_pole\",\n",
    "    \"skirt\",\n",
    "    \"skullcap\",\n",
    "    \"sled\",\n",
    "    \"sleeping_bag\",\n",
    "    \"sling_(bandage)\",\n",
    "    \"slipper_(footwear)\",\n",
    "    \"smoothie\",\n",
    "    \"snake\",\n",
    "    \"snowboard\",\n",
    "    \"snowman\",\n",
    "    \"snowmobile\",\n",
    "    \"soap\",\n",
    "    \"soccer_ball\",\n",
    "    \"sock\",\n",
    "    \"sofa\",\n",
    "    \"softball\",\n",
    "    \"solar_array\",\n",
    "    \"sombrero\",\n",
    "    \"soup\",\n",
    "    \"soup_bowl\",\n",
    "    \"soupspoon\",\n",
    "    \"sour_cream\",\n",
    "    \"soya_milk\",\n",
    "    \"space_shuttle\",\n",
    "    \"sparkler_(fireworks)\",\n",
    "    \"spatula\",\n",
    "    \"spear\",\n",
    "    \"spectacles\",\n",
    "    \"spice_rack\",\n",
    "    \"spider\",\n",
    "    \"crawfish\",\n",
    "    \"sponge\",\n",
    "    \"spoon\",\n",
    "    \"sportswear\",\n",
    "    \"spotlight\",\n",
    "    \"squid_(food)\",\n",
    "    \"squirrel\",\n",
    "    \"stagecoach\",\n",
    "    \"stapler_(stapling_machine)\",\n",
    "    \"starfish\",\n",
    "    \"statue_(sculpture)\",\n",
    "    \"steak_(food)\",\n",
    "    \"steak_knife\",\n",
    "    \"steering_wheel\",\n",
    "    \"stepladder\",\n",
    "    \"step_stool\",\n",
    "    \"stereo_(sound_system)\",\n",
    "    \"stew\",\n",
    "    \"stirrer\",\n",
    "    \"stirrup\",\n",
    "    \"stool\",\n",
    "    \"stop_sign\",\n",
    "    \"brake_light\",\n",
    "    \"stove\",\n",
    "    \"strainer\",\n",
    "    \"strap\",\n",
    "    \"straw_(for_drinking)\",\n",
    "    \"strawberry\",\n",
    "    \"street_sign\",\n",
    "    \"streetlight\",\n",
    "    \"string_cheese\",\n",
    "    \"stylus\",\n",
    "    \"subwoofer\",\n",
    "    \"sugar_bowl\",\n",
    "    \"sugarcane_(plant)\",\n",
    "    \"suit_(clothing)\",\n",
    "    \"sunflower\",\n",
    "    \"sunglasses\",\n",
    "    \"sunhat\",\n",
    "    \"surfboard\",\n",
    "    \"sushi\",\n",
    "    \"mop\",\n",
    "    \"sweat_pants\",\n",
    "    \"sweatband\",\n",
    "    \"sweater\",\n",
    "    \"sweatshirt\",\n",
    "    \"sweet_potato\",\n",
    "    \"swimsuit\",\n",
    "    \"sword\",\n",
    "    \"syringe\",\n",
    "    \"Tabasco_sauce\",\n",
    "    \"table-tennis_table\",\n",
    "    \"table\",\n",
    "    \"table_lamp\",\n",
    "    \"tablecloth\",\n",
    "    \"tachometer\",\n",
    "    \"taco\",\n",
    "    \"tag\",\n",
    "    \"taillight\",\n",
    "    \"tambourine\",\n",
    "    \"army_tank\",\n",
    "    \"tank_(storage_vessel)\",\n",
    "    \"tank_top_(clothing)\",\n",
    "    \"tape_(sticky_cloth_or_paper)\",\n",
    "    \"tape_measure\",\n",
    "    \"tapestry\",\n",
    "    \"tarp\",\n",
    "    \"tartan\",\n",
    "    \"tassel\",\n",
    "    \"tea_bag\",\n",
    "    \"teacup\",\n",
    "    \"teakettle\",\n",
    "    \"teapot\",\n",
    "    \"teddy_bear\",\n",
    "    \"telephone\",\n",
    "    \"telephone_booth\",\n",
    "    \"telephone_pole\",\n",
    "    \"telephoto_lens\",\n",
    "    \"television_camera\",\n",
    "    \"television_set\",\n",
    "    \"tennis_ball\",\n",
    "    \"tennis_racket\",\n",
    "    \"tequila\",\n",
    "    \"thermometer\",\n",
    "    \"thermos_bottle\",\n",
    "    \"thermostat\",\n",
    "    \"thimble\",\n",
    "    \"thread\",\n",
    "    \"thumbtack\",\n",
    "    \"tiara\",\n",
    "    \"tiger\",\n",
    "    \"tights_(clothing)\",\n",
    "    \"timer\",\n",
    "    \"tinfoil\",\n",
    "    \"tinsel\",\n",
    "    \"tissue_paper\",\n",
    "    \"toast_(food)\",\n",
    "    \"toaster\",\n",
    "    \"toaster_oven\",\n",
    "    \"toilet\",\n",
    "    \"toilet_tissue\",\n",
    "    \"tomato\",\n",
    "    \"tongs\",\n",
    "    \"toolbox\",\n",
    "    \"toothbrush\",\n",
    "    \"toothpaste\",\n",
    "    \"toothpick\",\n",
    "    \"cover\",\n",
    "    \"tortilla\",\n",
    "    \"tow_truck\",\n",
    "    \"towel\",\n",
    "    \"towel_rack\",\n",
    "    \"toy\",\n",
    "    \"tractor_(farm_equipment)\",\n",
    "    \"traffic_light\",\n",
    "    \"dirt_bike\",\n",
    "    \"trailer_truck\",\n",
    "    \"train_(railroad_vehicle)\",\n",
    "    \"trampoline\",\n",
    "    \"tray\",\n",
    "    \"trench_coat\",\n",
    "    \"triangle_(musical_instrument)\",\n",
    "    \"tricycle\",\n",
    "    \"tripod\",\n",
    "    \"trousers\",\n",
    "    \"truck\",\n",
    "    \"truffle_(chocolate)\",\n",
    "    \"trunk\",\n",
    "    \"vat\",\n",
    "    \"turban\",\n",
    "    \"turkey_(food)\",\n",
    "    \"turnip\",\n",
    "    \"turtle\",\n",
    "    \"turtleneck_(clothing)\",\n",
    "    \"typewriter\",\n",
    "    \"umbrella\",\n",
    "    \"underwear\",\n",
    "    \"unicycle\",\n",
    "    \"urinal\",\n",
    "    \"urn\",\n",
    "    \"vacuum_cleaner\",\n",
    "    \"vase\",\n",
    "    \"vending_machine\",\n",
    "    \"vent\",\n",
    "    \"vest\",\n",
    "    \"videotape\",\n",
    "    \"vinegar\",\n",
    "    \"violin\",\n",
    "    \"vodka\",\n",
    "    \"volleyball\",\n",
    "    \"vulture\",\n",
    "    \"waffle\",\n",
    "    \"waffle_iron\",\n",
    "    \"wagon\",\n",
    "    \"wagon_wheel\",\n",
    "    \"walking_stick\",\n",
    "    \"wall_clock\",\n",
    "    \"wall_socket\",\n",
    "    \"wallet\",\n",
    "    \"walrus\",\n",
    "    \"wardrobe\",\n",
    "    \"washbasin\",\n",
    "    \"automatic_washer\",\n",
    "    \"watch\",\n",
    "    \"water_bottle\",\n",
    "    \"water_cooler\",\n",
    "    \"water_faucet\",\n",
    "    \"water_heater\",\n",
    "    \"water_jug\",\n",
    "    \"water_gun\",\n",
    "    \"water_scooter\",\n",
    "    \"water_ski\",\n",
    "    \"water_tower\",\n",
    "    \"watering_can\",\n",
    "    \"watermelon\",\n",
    "    \"weathervane\",\n",
    "    \"webcam\",\n",
    "    \"wedding_cake\",\n",
    "    \"wedding_ring\",\n",
    "    \"wet_suit\",\n",
    "    \"wheel\",\n",
    "    \"wheelchair\",\n",
    "    \"whipped_cream\",\n",
    "    \"whistle\",\n",
    "    \"wig\",\n",
    "    \"wind_chime\",\n",
    "    \"windmill\",\n",
    "    \"window_box_(for_plants)\",\n",
    "    \"windshield_wiper\",\n",
    "    \"windsock\",\n",
    "    \"wine_bottle\",\n",
    "    \"wine_bucket\",\n",
    "    \"wineglass\",\n",
    "    \"blinder_(for_horses)\",\n",
    "    \"wok\",\n",
    "    \"wolf\",\n",
    "    \"wooden_spoon\",\n",
    "    \"wreath\",\n",
    "    \"wrench\",\n",
    "    \"wristband\",\n",
    "    \"wristlet\",\n",
    "    \"yacht\",\n",
    "    \"yogurt\",\n",
    "    \"yoke_(animal_equipment)\",\n",
    "    \"zebra\",\n",
    "    \"zucchini\",\n",
    "]\n",
    "\n",
    "ADE20K_CLASS_NAMES = [\n",
    "    \"wall\",\n",
    "    \"building\",\n",
    "    \"sky\",\n",
    "    \"floor\",\n",
    "    \"tree\",\n",
    "    \"ceiling\",\n",
    "    \"road\",\n",
    "    \"bed\",\n",
    "    \"windowpane\",\n",
    "    \"grass\",\n",
    "    \"cabinet\",\n",
    "    \"sidewalk\",\n",
    "    \"person\",\n",
    "    \"earth\",\n",
    "    \"door\",\n",
    "    \"table\",\n",
    "    \"mountain\",\n",
    "    \"plant\",\n",
    "    \"curtain\",\n",
    "    \"chair\",\n",
    "    \"car\",\n",
    "    \"water\",\n",
    "    \"painting\",\n",
    "    \"sofa\",\n",
    "    \"shelf\",\n",
    "    \"house\",\n",
    "    \"sea\",\n",
    "    \"mirror\",\n",
    "    \"rug\",\n",
    "    \"field\",\n",
    "    \"armchair\",\n",
    "    \"seat\",\n",
    "    \"fence\",\n",
    "    \"desk\",\n",
    "    \"rock\",\n",
    "    \"wardrobe\",\n",
    "    \"lamp\",\n",
    "    \"bathtub\",\n",
    "    \"railing\",\n",
    "    \"cushion\",\n",
    "    \"base\",\n",
    "    \"box\",\n",
    "    \"column\",\n",
    "    \"signboard\",\n",
    "    \"chest of drawers\",\n",
    "    \"counter\",\n",
    "    \"sand\",\n",
    "    \"sink\",\n",
    "    \"skyscraper\",\n",
    "    \"fireplace\",\n",
    "    \"refrigerator\",\n",
    "    \"grandstand\",\n",
    "    \"path\",\n",
    "    \"stairs\",\n",
    "    \"runway\",\n",
    "    \"case\",\n",
    "    \"pool table\",\n",
    "    \"pillow\",\n",
    "    \"screen door\",\n",
    "    \"stairway\",\n",
    "    \"river\",\n",
    "    \"bridge\",\n",
    "    \"bookcase\",\n",
    "    \"blind\",\n",
    "    \"coffee table\",\n",
    "    \"toilet\",\n",
    "    \"flower\",\n",
    "    \"book\",\n",
    "    \"hill\",\n",
    "    \"bench\",\n",
    "    \"countertop\",\n",
    "    \"stove\",\n",
    "    \"palm\",\n",
    "    \"kitchen island\",\n",
    "    \"computer\",\n",
    "    \"swivel chair\",\n",
    "    \"boat\",\n",
    "    \"bar\",\n",
    "    \"arcade machine\",\n",
    "    \"hovel\",\n",
    "    \"bus\",\n",
    "    \"towel\",\n",
    "    \"light\",\n",
    "    \"truck\",\n",
    "    \"tower\",\n",
    "    \"chandelier\",\n",
    "    \"awning\",\n",
    "    \"streetlight\",\n",
    "    \"booth\",\n",
    "    \"television receiver\",\n",
    "    \"airplane\",\n",
    "    \"dirt track\",\n",
    "    \"apparel\",\n",
    "    \"pole\",\n",
    "    \"land\",\n",
    "    \"bannister\",\n",
    "    \"escalator\",\n",
    "    \"ottoman\",\n",
    "    \"bottle\",\n",
    "    \"buffet\",\n",
    "    \"poster\",\n",
    "    \"stage\",\n",
    "    \"van\",\n",
    "    \"ship\",\n",
    "    \"fountain\",\n",
    "    \"conveyer belt\",\n",
    "    \"canopy\",\n",
    "    \"washer\",\n",
    "    \"plaything\",\n",
    "    \"swimming pool\",\n",
    "    \"stool\",\n",
    "    \"barrel\",\n",
    "    \"basket\",\n",
    "    \"waterfall\",\n",
    "    \"tent\",\n",
    "    \"bag\",\n",
    "    \"minibike\",\n",
    "    \"cradle\",\n",
    "    \"oven\",\n",
    "    \"ball\",\n",
    "    \"food\",\n",
    "    \"step\",\n",
    "    \"tank\",\n",
    "    \"trade name\",\n",
    "    \"microwave\",\n",
    "    \"pot\",\n",
    "    \"animal\",\n",
    "    \"bicycle\",\n",
    "    \"lake\",\n",
    "    \"dishwasher\",\n",
    "    \"screen\",\n",
    "    \"blanket\",\n",
    "    \"sculpture\",\n",
    "    \"hood\",\n",
    "    \"sconce\",\n",
    "    \"vase\",\n",
    "    \"traffic light\",\n",
    "    \"tray\",\n",
    "    \"ashcan\",\n",
    "    \"fan\",\n",
    "    \"pier\",\n",
    "    \"crt screen\",\n",
    "    \"plate\",\n",
    "    \"monitor\",\n",
    "    \"bulletin board\",\n",
    "    \"shower\",\n",
    "    \"radiator\",\n",
    "    \"glass\",\n",
    "    \"clock\",\n",
    "    \"flag\",\n",
    "]\n",
    "\n",
    "OBJECTS365_CLASS_NAMES = [\n",
    "    \"person\",\n",
    "    \"sneakers\",\n",
    "    \"chair\",\n",
    "    \"other shoes\",\n",
    "    \"hat\",\n",
    "    \"car\",\n",
    "    \"lamp\",\n",
    "    \"glasses\",\n",
    "    \"bottle\",\n",
    "    \"desk\",\n",
    "    \"cup\",\n",
    "    \"street lights\",\n",
    "    \"cabinet (shelf)\",\n",
    "    \"handbag (satchel)\",\n",
    "    \"bracelet\",\n",
    "    \"plate\",\n",
    "    \"picture (frame)\",\n",
    "    \"helmet\",\n",
    "    \"book\",\n",
    "    \"gloves\",\n",
    "    \"storage box\",\n",
    "    \"boat\",\n",
    "    \"leather shoes\",\n",
    "    \"flower\",\n",
    "    \"bench\",\n",
    "    \"potted plant\",\n",
    "    \"bowl (basin)\",\n",
    "    \"flag\",\n",
    "    \"pillow\",\n",
    "    \"boots\",\n",
    "    \"vase\",\n",
    "    \"microphone\",\n",
    "    \"necklace\",\n",
    "    \"ring\",\n",
    "    \"suv\",\n",
    "    \"wine glass\",\n",
    "    \"belt\",\n",
    "    \"monitor (tv)\",\n",
    "    \"backpack\",\n",
    "    \"umbrella\",\n",
    "    \"traffic light\",\n",
    "    \"speaker\",\n",
    "    \"watch\",\n",
    "    \"tie\",\n",
    "    \"trash bin can\",\n",
    "    \"slippers\",\n",
    "    \"bicycle\",\n",
    "    \"stool\",\n",
    "    \"barrel (bucket)\",\n",
    "    \"van\",\n",
    "    \"couch\",\n",
    "    \"sandals\",\n",
    "    \"basket\",\n",
    "    \"drum\",\n",
    "    \"pen (pencil)\",\n",
    "    \"bus\",\n",
    "    \"wild bird\",\n",
    "    \"high heels\",\n",
    "    \"motorcycle\",\n",
    "    \"guitar\",\n",
    "    \"carpet\",\n",
    "    \"cell phone\",\n",
    "    \"bread\",\n",
    "    \"camera\",\n",
    "    \"canned\",\n",
    "    \"truck\",\n",
    "    \"traffic cone\",\n",
    "    \"cymbal\",\n",
    "    \"lifesaver\",\n",
    "    \"towel\",\n",
    "    \"stuffed toy\",\n",
    "    \"candle\",\n",
    "    \"sailboat\",\n",
    "    \"laptop\",\n",
    "    \"awning\",\n",
    "    \"bed\",\n",
    "    \"faucet\",\n",
    "    \"tent\",\n",
    "    \"horse\",\n",
    "    \"mirror\",\n",
    "    \"power outlet\",\n",
    "    \"sink\",\n",
    "    \"apple\",\n",
    "    \"air conditioner\",\n",
    "    \"knife\",\n",
    "    \"hockey stick\",\n",
    "    \"paddle\",\n",
    "    \"pickup truck\",\n",
    "    \"fork\",\n",
    "    \"traffic sign\",\n",
    "    \"balloon\",\n",
    "    \"tripod\",\n",
    "    \"dog\",\n",
    "    \"spoon\",\n",
    "    \"clock\",\n",
    "    \"pot\",\n",
    "    \"cow\",\n",
    "    \"cake\",\n",
    "    \"dinning table\",\n",
    "    \"sheep\",\n",
    "    \"hanger\",\n",
    "    \"blackboard (whiteboard)\",\n",
    "    \"napkin\",\n",
    "    \"other fish\",\n",
    "    \"orange (tangerine)\",\n",
    "    \"toiletry\",\n",
    "    \"keyboard\",\n",
    "    \"tomato\",\n",
    "    \"lantern\",\n",
    "    \"machinery vehicle\",\n",
    "    \"fan\",\n",
    "    \"green vegetables\",\n",
    "    \"banana\",\n",
    "    \"baseball glove\",\n",
    "    \"airplane\",\n",
    "    \"mouse\",\n",
    "    \"train\",\n",
    "    \"pumpkin\",\n",
    "    \"soccer\",\n",
    "    \"skiboard\",\n",
    "    \"luggage\",\n",
    "    \"nightstand\",\n",
    "    \"tea pot\",\n",
    "    \"telephone\",\n",
    "    \"trolley\",\n",
    "    \"head phone\",\n",
    "    \"sports car\",\n",
    "    \"stop sign\",\n",
    "    \"dessert\",\n",
    "    \"scooter\",\n",
    "    \"stroller\",\n",
    "    \"crane\",\n",
    "    \"remote\",\n",
    "    \"refrigerator\",\n",
    "    \"oven\",\n",
    "    \"lemon\",\n",
    "    \"duck\",\n",
    "    \"baseball bat\",\n",
    "    \"surveillance camera\",\n",
    "    \"cat\",\n",
    "    \"jug\",\n",
    "    \"broccoli\",\n",
    "    \"piano\",\n",
    "    \"pizza\",\n",
    "    \"elephant\",\n",
    "    \"skateboard\",\n",
    "    \"surfboard\",\n",
    "    \"gun\",\n",
    "    \"skating and skiing shoes\",\n",
    "    \"gas stove\",\n",
    "    \"donut\",\n",
    "    \"bow tie\",\n",
    "    \"carrot\",\n",
    "    \"toilet\",\n",
    "    \"kite\",\n",
    "    \"strawberry\",\n",
    "    \"other balls\",\n",
    "    \"shovel\",\n",
    "    \"pepper\",\n",
    "    \"computer box\",\n",
    "    \"toilet paper\",\n",
    "    \"cleaning products\",\n",
    "    \"chopsticks\",\n",
    "    \"microwave\",\n",
    "    \"pigeon\",\n",
    "    \"baseball\",\n",
    "    \"cutting (chopping board)\",\n",
    "    \"coffee table\",\n",
    "    \"side table\",\n",
    "    \"scissors\",\n",
    "    \"marker\",\n",
    "    \"pie\",\n",
    "    \"ladder\",\n",
    "    \"snowboard\",\n",
    "    \"cookies\",\n",
    "    \"radiator\",\n",
    "    \"fire hydrant\",\n",
    "    \"basketball\",\n",
    "    \"zebra\",\n",
    "    \"grape\",\n",
    "    \"giraffe\",\n",
    "    \"potato\",\n",
    "    \"sausage\",\n",
    "    \"tricycle\",\n",
    "    \"violin\",\n",
    "    \"egg\",\n",
    "    \"fire extinguisher\",\n",
    "    \"candy\",\n",
    "    \"fire truck\",\n",
    "    \"billiards\",\n",
    "    \"converter\",\n",
    "    \"bathtub\",\n",
    "    \"wheelchair\",\n",
    "    \"golf club\",\n",
    "    \"briefcase\",\n",
    "    \"cucumber\",\n",
    "    \"cigar (cigarette)\",\n",
    "    \"paint brush\",\n",
    "    \"pear\",\n",
    "    \"heavy truck\",\n",
    "    \"hamburger\",\n",
    "    \"extractor\",\n",
    "    \"extension cord\",\n",
    "    \"tong\",\n",
    "    \"tennis racket\",\n",
    "    \"folder\",\n",
    "    \"american football\",\n",
    "    \"earphone\",\n",
    "    \"mask\",\n",
    "    \"kettle\",\n",
    "    \"tennis\",\n",
    "    \"ship\",\n",
    "    \"swing\",\n",
    "    \"coffee machine\",\n",
    "    \"slide\",\n",
    "    \"carriage\",\n",
    "    \"onion\",\n",
    "    \"green beans\",\n",
    "    \"projector\",\n",
    "    \"frisbee\",\n",
    "    \"washing machine (drying machine)\",\n",
    "    \"chicken\",\n",
    "    \"printer\",\n",
    "    \"watermelon\",\n",
    "    \"saxophone\",\n",
    "    \"tissue\",\n",
    "    \"toothbrush\",\n",
    "    \"ice cream\",\n",
    "    \"hot-air balloon\",\n",
    "    \"cello\",\n",
    "    \"french fries\",\n",
    "    \"scale\",\n",
    "    \"trophy\",\n",
    "    \"cabbage\",\n",
    "    \"hot dog\",\n",
    "    \"blender\",\n",
    "    \"peach\",\n",
    "    \"rice\",\n",
    "    \"wallet (purse)\",\n",
    "    \"volleyball\",\n",
    "    \"deer\",\n",
    "    \"goose\",\n",
    "    \"tape\",\n",
    "    \"tablet\",\n",
    "    \"cosmetics\",\n",
    "    \"trumpet\",\n",
    "    \"pineapple\",\n",
    "    \"golf ball\",\n",
    "    \"ambulance\",\n",
    "    \"parking meter\",\n",
    "    \"mango\",\n",
    "    \"key\",\n",
    "    \"hurdle\",\n",
    "    \"fishing rod\",\n",
    "    \"medal\",\n",
    "    \"flute\",\n",
    "    \"brush\",\n",
    "    \"penguin\",\n",
    "    \"megaphone\",\n",
    "    \"corn\",\n",
    "    \"lettuce\",\n",
    "    \"garlic\",\n",
    "    \"swan\",\n",
    "    \"helicopter\",\n",
    "    \"green onion\",\n",
    "    \"sandwich\",\n",
    "    \"nuts\",\n",
    "    \"speed limit sign\",\n",
    "    \"induction cooker\",\n",
    "    \"broom\",\n",
    "    \"trombone\",\n",
    "    \"plum\",\n",
    "    \"rickshaw\",\n",
    "    \"goldfish\",\n",
    "    \"kiwi fruit\",\n",
    "    \"router (modem)\",\n",
    "    \"poker card\",\n",
    "    \"toaster\",\n",
    "    \"shrimp\",\n",
    "    \"sushi\",\n",
    "    \"cheese\",\n",
    "    \"notepaper\",\n",
    "    \"cherry\",\n",
    "    \"pliers\",\n",
    "    \"cd\",\n",
    "    \"pasta\",\n",
    "    \"hammer\",\n",
    "    \"cue\",\n",
    "    \"avocado\",\n",
    "    \"hamimelon\",\n",
    "    \"flask\",\n",
    "    \"mushroom\",\n",
    "    \"screwdriver\",\n",
    "    \"soap\",\n",
    "    \"recorder\",\n",
    "    \"bear\",\n",
    "    \"eggplant\",\n",
    "    \"board eraser\",\n",
    "    \"coconut\",\n",
    "    \"tape measure (ruler)\",\n",
    "    \"pig\",\n",
    "    \"showerhead\",\n",
    "    \"globe\",\n",
    "    \"chips\",\n",
    "    \"steak\",\n",
    "    \"crosswalk sign\",\n",
    "    \"stapler\",\n",
    "    \"camel\",\n",
    "    \"formula 1\",\n",
    "    \"pomegranate\",\n",
    "    \"dishwasher\",\n",
    "    \"crab\",\n",
    "    \"hoverboard\",\n",
    "    \"meat ball\",\n",
    "    \"rice cooker\",\n",
    "    \"tuba\",\n",
    "    \"calculator\",\n",
    "    \"papaya\",\n",
    "    \"antelope\",\n",
    "    \"parrot\",\n",
    "    \"seal\",\n",
    "    \"butterfly\",\n",
    "    \"dumbbell\",\n",
    "    \"donkey\",\n",
    "    \"lion\",\n",
    "    \"urinal\",\n",
    "    \"dolphin\",\n",
    "    \"electric drill\",\n",
    "    \"hair dryer\",\n",
    "    \"egg tart\",\n",
    "    \"jellyfish\",\n",
    "    \"treadmill\",\n",
    "    \"lighter\",\n",
    "    \"grapefruit\",\n",
    "    \"game board\",\n",
    "    \"mop\",\n",
    "    \"radish\",\n",
    "    \"baozi\",\n",
    "    \"target\",\n",
    "    \"french\",\n",
    "    \"spring rolls\",\n",
    "    \"monkey\",\n",
    "    \"rabbit\",\n",
    "    \"pencil case\",\n",
    "    \"yak\",\n",
    "    \"red cabbage\",\n",
    "    \"binoculars\",\n",
    "    \"asparagus\",\n",
    "    \"barbell\",\n",
    "    \"scallop\",\n",
    "    \"noddles\",\n",
    "    \"comb\",\n",
    "    \"dumpling\",\n",
    "    \"oyster\",\n",
    "    \"table tennis paddle\",\n",
    "    \"cosmetics brush (eyeliner pencil)\",\n",
    "    \"chainsaw\",\n",
    "    \"eraser\",\n",
    "    \"lobster\",\n",
    "    \"durian\",\n",
    "    \"okra\",\n",
    "    \"lipstick\",\n",
    "    \"cosmetics mirror\",\n",
    "    \"curling\",\n",
    "    \"table tennis\",\n",
    "]\n",
    "\n",
    "OPEN_IMAGES_V4_BOXABLE_CLASS_NAMES = [\n",
    "    \"tortoise\",\n",
    "    \"container\",\n",
    "    \"magpie\",\n",
    "    \"sea turtle\",\n",
    "    \"football\",\n",
    "    \"ambulance\",\n",
    "    \"ladder\",\n",
    "    \"toothbrush\",\n",
    "    \"syringe\",\n",
    "    \"sink\",\n",
    "    \"toy\",\n",
    "    \"organ\",\n",
    "    \"cassette deck\",\n",
    "    \"apple\",\n",
    "    \"human eye\",\n",
    "    \"cosmetics\",\n",
    "    \"paddle\",\n",
    "    \"snowman\",\n",
    "    \"beer\",\n",
    "    \"chopsticks\",\n",
    "    \"human beard\",\n",
    "    \"bird\",\n",
    "    \"parking meter\",\n",
    "    \"traffic light\",\n",
    "    \"croissant\",\n",
    "    \"cucumber\",\n",
    "    \"radish\",\n",
    "    \"towel\",\n",
    "    \"doll\",\n",
    "    \"skull\",\n",
    "    \"washing machine\",\n",
    "    \"glove\",\n",
    "    \"tick\",\n",
    "    \"belt\",\n",
    "    \"sunglasses\",\n",
    "    \"banjo\",\n",
    "    \"cart\",\n",
    "    \"ball\",\n",
    "    \"backpack\",\n",
    "    \"bicycle\",\n",
    "    \"home appliance\",\n",
    "    \"centipede\",\n",
    "    \"boat\",\n",
    "    \"surfboard\",\n",
    "    \"boot\",\n",
    "    \"headphones\",\n",
    "    \"hot dog\",\n",
    "    \"shorts\",\n",
    "    \"fast food\",\n",
    "    \"bus\",\n",
    "    \"boy\",\n",
    "    \"screwdriver\",\n",
    "    \"bicycle wheel\",\n",
    "    \"barge\",\n",
    "    \"laptop\",\n",
    "    \"miniskirt\",\n",
    "    \"drill\",\n",
    "    \"dress\",\n",
    "    \"bear\",\n",
    "    \"waffle\",\n",
    "    \"pancake\",\n",
    "    \"brown bear\",\n",
    "    \"woodpecker\",\n",
    "    \"blue jay\",\n",
    "    \"pretzel\",\n",
    "    \"bagel\",\n",
    "    \"tower\",\n",
    "    \"teapot\",\n",
    "    \"person\",\n",
    "    \"bow and arrow\",\n",
    "    \"swimwear\",\n",
    "    \"beehive\",\n",
    "    \"brassiere\",\n",
    "    \"bee\",\n",
    "    \"bat\",\n",
    "    \"starfish\",\n",
    "    \"popcorn\",\n",
    "    \"burrito\",\n",
    "    \"chainsaw\",\n",
    "    \"balloon\",\n",
    "    \"wrench\",\n",
    "    \"tent\",\n",
    "    \"vehicle registration plate\",\n",
    "    \"lantern\",\n",
    "    \"toaster\",\n",
    "    \"flashlight\",\n",
    "    \"billboard\",\n",
    "    \"tiara\",\n",
    "    \"limousine\",\n",
    "    \"necklace\",\n",
    "    \"carnivore\",\n",
    "    \"scissors\",\n",
    "    \"stairs\",\n",
    "    \"computer keyboard\",\n",
    "    \"printer\",\n",
    "    \"traffic sign\",\n",
    "    \"chair\",\n",
    "    \"shirt\",\n",
    "    \"poster\",\n",
    "    \"cheese\",\n",
    "    \"sock\",\n",
    "    \"fire hydrant\",\n",
    "    \"land vehicle\",\n",
    "    \"earrings\",\n",
    "    \"tie\",\n",
    "    \"watercraft\",\n",
    "    \"cabinetry\",\n",
    "    \"suitcase\",\n",
    "    \"muffin\",\n",
    "    \"bidet\",\n",
    "    \"snack\",\n",
    "    \"snowmobile\",\n",
    "    \"clock\",\n",
    "    \"medical equipment\",\n",
    "    \"cattle\",\n",
    "    \"cello\",\n",
    "    \"jet ski\",\n",
    "    \"camel\",\n",
    "    \"coat\",\n",
    "    \"suit\",\n",
    "    \"desk\",\n",
    "    \"cat\",\n",
    "    \"bronze sculpture\",\n",
    "    \"juice\",\n",
    "    \"gondola\",\n",
    "    \"beetle\",\n",
    "    \"cannon\",\n",
    "    \"computer mouse\",\n",
    "    \"cookie\",\n",
    "    \"office building\",\n",
    "    \"fountain\",\n",
    "    \"coin\",\n",
    "    \"calculator\",\n",
    "    \"cocktail\",\n",
    "    \"computer monitor\",\n",
    "    \"box\",\n",
    "    \"stapler\",\n",
    "    \"christmas tree\",\n",
    "    \"cowboy hat\",\n",
    "    \"hiking equipment\",\n",
    "    \"studio couch\",\n",
    "    \"drum\",\n",
    "    \"dessert\",\n",
    "    \"wine rack\",\n",
    "    \"drink\",\n",
    "    \"zucchini\",\n",
    "    \"ladle\",\n",
    "    \"human mouth\",\n",
    "    \"dairy\",\n",
    "    \"dice\",\n",
    "    \"oven\",\n",
    "    \"dinosaur\",\n",
    "    \"ratchet\",\n",
    "    \"couch\",\n",
    "    \"cricket ball\",\n",
    "    \"winter melon\",\n",
    "    \"spatula\",\n",
    "    \"whiteboard\",\n",
    "    \"pencil sharpener\",\n",
    "    \"door\",\n",
    "    \"hat\",\n",
    "    \"shower\",\n",
    "    \"eraser\",\n",
    "    \"fedora\",\n",
    "    \"guacamole\",\n",
    "    \"dagger\",\n",
    "    \"scarf\",\n",
    "    \"dolphin\",\n",
    "    \"sombrero\",\n",
    "    \"tin can\",\n",
    "    \"mug\",\n",
    "    \"tap\",\n",
    "    \"harbor seal\",\n",
    "    \"stretcher\",\n",
    "    \"can opener\",\n",
    "    \"goggles\",\n",
    "    \"human body\",\n",
    "    \"roller skates\",\n",
    "    \"coffee cup\",\n",
    "    \"cutting board\",\n",
    "    \"blender\",\n",
    "    \"plumbing fixture\",\n",
    "    \"stop sign\",\n",
    "    \"office supplies\",\n",
    "    \"volleyball\",\n",
    "    \"vase\",\n",
    "    \"slow cooker\",\n",
    "    \"wardrobe\",\n",
    "    \"coffee\",\n",
    "    \"whisk\",\n",
    "    \"paper towel\",\n",
    "    \"personal care\",\n",
    "    \"food\",\n",
    "    \"sun hat\",\n",
    "    \"tree house\",\n",
    "    \"flying disc\",\n",
    "    \"skirt\",\n",
    "    \"gas stove\",\n",
    "    \"salt and pepper shakers\",\n",
    "    \"mechanical fan\",\n",
    "    \"face powder\",\n",
    "    \"fax\",\n",
    "    \"fruit\",\n",
    "    \"french fries\",\n",
    "    \"nightstand\",\n",
    "    \"barrel\",\n",
    "    \"kite\",\n",
    "    \"tart\",\n",
    "    \"treadmill\",\n",
    "    \"fox\",\n",
    "    \"flag\",\n",
    "    \"horn\",\n",
    "    \"window blind\",\n",
    "    \"human foot\",\n",
    "    \"golf cart\",\n",
    "    \"jacket\",\n",
    "    \"egg\",\n",
    "    \"street light\",\n",
    "    \"guitar\",\n",
    "    \"pillow\",\n",
    "    \"human leg\",\n",
    "    \"isopod\",\n",
    "    \"grape\",\n",
    "    \"human ear\",\n",
    "    \"power plugs and sockets\",\n",
    "    \"panda\",\n",
    "    \"giraffe\",\n",
    "    \"woman\",\n",
    "    \"door handle\",\n",
    "    \"rhinoceros\",\n",
    "    \"bathtub\",\n",
    "    \"goldfish\",\n",
    "    \"houseplant\",\n",
    "    \"goat\",\n",
    "    \"baseball bat\",\n",
    "    \"baseball glove\",\n",
    "    \"mixing bowl\",\n",
    "    \"marine invertebrates\",\n",
    "    \"kitchen utensil\",\n",
    "    \"light switch\",\n",
    "    \"house\",\n",
    "    \"horse\",\n",
    "    \"stationary bicycle\",\n",
    "    \"hammer\",\n",
    "    \"ceiling fan\",\n",
    "    \"sofa bed\",\n",
    "    \"adhesive tape\",\n",
    "    \"harp\",\n",
    "    \"sandal\",\n",
    "    \"bicycle helmet\",\n",
    "    \"saucer\",\n",
    "    \"harpsichord\",\n",
    "    \"human hair\",\n",
    "    \"heater\",\n",
    "    \"harmonica\",\n",
    "    \"hamster\",\n",
    "    \"curtain\",\n",
    "    \"bed\",\n",
    "    \"kettle\",\n",
    "    \"fireplace\",\n",
    "    \"scale\",\n",
    "    \"drinking straw\",\n",
    "    \"insect\",\n",
    "    \"hair dryer\",\n",
    "    \"kitchenware\",\n",
    "    \"indoor rower\",\n",
    "    \"invertebrate\",\n",
    "    \"food processor\",\n",
    "    \"bookcase\",\n",
    "    \"refrigerator\",\n",
    "    \"wood-burning stove\",\n",
    "    \"punching bag\",\n",
    "    \"common fig\",\n",
    "    \"cocktail shaker\",\n",
    "    \"jaguar\",\n",
    "    \"golf ball\",\n",
    "    \"fashion accessory\",\n",
    "    \"alarm clock\",\n",
    "    \"filing cabinet\",\n",
    "    \"artichoke\",\n",
    "    \"table\",\n",
    "    \"tableware\",\n",
    "    \"kangaroo\",\n",
    "    \"koala\",\n",
    "    \"knife\",\n",
    "    \"bottle\",\n",
    "    \"bottle opener\",\n",
    "    \"lynx\",\n",
    "    \"lavender\",\n",
    "    \"lighthouse\",\n",
    "    \"dumbbell\",\n",
    "    \"human head\",\n",
    "    \"bowl\",\n",
    "    \"humidifier\",\n",
    "    \"porch\",\n",
    "    \"lizard\",\n",
    "    \"billiard table\",\n",
    "    \"mammal\",\n",
    "    \"mouse\",\n",
    "    \"motorcycle\",\n",
    "    \"musical instrument\",\n",
    "    \"swim cap\",\n",
    "    \"frying pan\",\n",
    "    \"snowplow\",\n",
    "    \"bathroom cabinet\",\n",
    "    \"missile\",\n",
    "    \"bust\",\n",
    "    \"man\",\n",
    "    \"waffle iron\",\n",
    "    \"milk\",\n",
    "    \"ring binder\",\n",
    "    \"plate\",\n",
    "    \"mobile phone\",\n",
    "    \"baked goods\",\n",
    "    \"mushroom\",\n",
    "    \"crutch\",\n",
    "    \"pitcher\",\n",
    "    \"mirror\",\n",
    "    \"lifejacket\",\n",
    "    \"table tennis racket\",\n",
    "    \"pencil case\",\n",
    "    \"musical keyboard\",\n",
    "    \"scoreboard\",\n",
    "    \"briefcase\",\n",
    "    \"kitchen knife\",\n",
    "    \"nail\",\n",
    "    \"tennis ball\",\n",
    "    \"plastic bag\",\n",
    "    \"oboe\",\n",
    "    \"chest of drawers\",\n",
    "    \"ostrich\",\n",
    "    \"piano\",\n",
    "    \"girl\",\n",
    "    \"plant\",\n",
    "    \"potato\",\n",
    "    \"hair spray\",\n",
    "    \"sports equipment\",\n",
    "    \"pasta\",\n",
    "    \"penguin\",\n",
    "    \"pumpkin\",\n",
    "    \"pear\",\n",
    "    \"infant bed\",\n",
    "    \"polar bear\",\n",
    "    \"mixer\",\n",
    "    \"cupboard\",\n",
    "    \"jacuzzi\",\n",
    "    \"pizza\",\n",
    "    \"digital clock\",\n",
    "    \"pig\",\n",
    "    \"reptile\",\n",
    "    \"rifle\",\n",
    "    \"lipstick\",\n",
    "    \"skateboard\",\n",
    "    \"raven\",\n",
    "    \"high heels\",\n",
    "    \"red panda\",\n",
    "    \"rose\",\n",
    "    \"rabbit\",\n",
    "    \"sculpture\",\n",
    "    \"saxophone\",\n",
    "    \"shotgun\",\n",
    "    \"seafood\",\n",
    "    \"submarine sandwich\",\n",
    "    \"snowboard\",\n",
    "    \"sword\",\n",
    "    \"picture frame\",\n",
    "    \"sushi\",\n",
    "    \"loveseat\",\n",
    "    \"ski\",\n",
    "    \"squirrel\",\n",
    "    \"tripod\",\n",
    "    \"stethoscope\",\n",
    "    \"submarine\",\n",
    "    \"scorpion\",\n",
    "    \"segway\",\n",
    "    \"training bench\",\n",
    "    \"snake\",\n",
    "    \"coffee table\",\n",
    "    \"skyscraper\",\n",
    "    \"sheep\",\n",
    "    \"television\",\n",
    "    \"trombone\",\n",
    "    \"tea\",\n",
    "    \"tank\",\n",
    "    \"taco\",\n",
    "    \"telephone\",\n",
    "    \"torch\",\n",
    "    \"tiger\",\n",
    "    \"strawberry\",\n",
    "    \"trumpet\",\n",
    "    \"tree\",\n",
    "    \"tomato\",\n",
    "    \"train\",\n",
    "    \"tool\",\n",
    "    \"picnic basket\",\n",
    "    \"cooking spray\",\n",
    "    \"trousers\",\n",
    "    \"bowling equipment\",\n",
    "    \"football helmet\",\n",
    "    \"truck\",\n",
    "    \"measuring cup\",\n",
    "    \"coffeemaker\",\n",
    "    \"violin\",\n",
    "    \"vehicle\",\n",
    "    \"handbag\",\n",
    "    \"paper cutter\",\n",
    "    \"wine\",\n",
    "    \"weapon\",\n",
    "    \"wheel\",\n",
    "    \"worm\",\n",
    "    \"wok\",\n",
    "    \"whale\",\n",
    "    \"zebra\",\n",
    "    \"auto part\",\n",
    "    \"jug\",\n",
    "    \"pizza cutter\",\n",
    "    \"cream\",\n",
    "    \"monkey\",\n",
    "    \"lion\",\n",
    "    \"bread\",\n",
    "    \"platter\",\n",
    "    \"chicken\",\n",
    "    \"eagle\",\n",
    "    \"helicopter\",\n",
    "    \"owl\",\n",
    "    \"duck\",\n",
    "    \"turtle\",\n",
    "    \"hippopotamus\",\n",
    "    \"crocodile\",\n",
    "    \"toilet\",\n",
    "    \"toilet paper\",\n",
    "    \"squid\",\n",
    "    \"clothing\",\n",
    "    \"footwear\",\n",
    "    \"lemon\",\n",
    "    \"spider\",\n",
    "    \"deer\",\n",
    "    \"frog\",\n",
    "    \"banana\",\n",
    "    \"rocket\",\n",
    "    \"wine glass\",\n",
    "    \"countertop\",\n",
    "    \"tablet computer\",\n",
    "    \"waste container\",\n",
    "    \"swimming pool\",\n",
    "    \"dog\",\n",
    "    \"book\",\n",
    "    \"elephant\",\n",
    "    \"shark\",\n",
    "    \"candle\",\n",
    "    \"leopard\",\n",
    "    \"axe\",\n",
    "    \"hand dryer\",\n",
    "    \"soap dispenser\",\n",
    "    \"porcupine\",\n",
    "    \"flower\",\n",
    "    \"canary\",\n",
    "    \"cheetah\",\n",
    "    \"palm tree\",\n",
    "    \"hamburger\",\n",
    "    \"maple\",\n",
    "    \"building\",\n",
    "    \"fish\",\n",
    "    \"lobster\",\n",
    "    \"asparagus\",\n",
    "    \"furniture\",\n",
    "    \"hedgehog\",\n",
    "    \"airplane\",\n",
    "    \"spoon\",\n",
    "    \"otter\",\n",
    "    \"bull\",\n",
    "    \"oyster\",\n",
    "    \"horizontal bar\",\n",
    "    \"convenience store\",\n",
    "    \"bomb\",\n",
    "    \"bench\",\n",
    "    \"ice cream\",\n",
    "    \"caterpillar\",\n",
    "    \"butterfly\",\n",
    "    \"parachute\",\n",
    "    \"orange\",\n",
    "    \"antelope\",\n",
    "    \"beaker\",\n",
    "    \"moths and butterflies\",\n",
    "    \"window\",\n",
    "    \"closet\",\n",
    "    \"castle\",\n",
    "    \"jellyfish\",\n",
    "    \"goose\",\n",
    "    \"mule\",\n",
    "    \"swan\",\n",
    "    \"peach\",\n",
    "    \"coconut\",\n",
    "    \"seat belt\",\n",
    "    \"raccoon\",\n",
    "    \"chisel\",\n",
    "    \"fork\",\n",
    "    \"lamp\",\n",
    "    \"camera\",\n",
    "    \"squash\",\n",
    "    \"racket\",\n",
    "    \"human face\",\n",
    "    \"human arm\",\n",
    "    \"vegetable\",\n",
    "    \"diaper\",\n",
    "    \"unicycle\",\n",
    "    \"falcon\",\n",
    "    \"chime\",\n",
    "    \"snail\",\n",
    "    \"shellfish\",\n",
    "    \"cabbage\",\n",
    "    \"carrot\",\n",
    "    \"mango\",\n",
    "    \"jeans\",\n",
    "    \"flowerpot\",\n",
    "    \"pineapple\",\n",
    "    \"drawer\",\n",
    "    \"stool\",\n",
    "    \"envelope\",\n",
    "    \"cake\",\n",
    "    \"dragonfly\",\n",
    "    \"sunflower\",\n",
    "    \"microwave oven\",\n",
    "    \"honeycomb\",\n",
    "    \"marine mammal\",\n",
    "    \"sea lion\",\n",
    "    \"ladybug\",\n",
    "    \"shelf\",\n",
    "    \"watch\",\n",
    "    \"candy\",\n",
    "    \"salad\",\n",
    "    \"parrot\",\n",
    "    \"handgun\",\n",
    "    \"sparrow\",\n",
    "    \"van\",\n",
    "    \"grinder\",\n",
    "    \"spice rack\",\n",
    "    \"light bulb\",\n",
    "    \"corded phone\",\n",
    "    \"sports uniform\",\n",
    "    \"tennis racket\",\n",
    "    \"wall clock\",\n",
    "    \"serving tray\",\n",
    "    \"kitchen & dining room table\",\n",
    "    \"dog bed\",\n",
    "    \"cake stand\",\n",
    "    \"cat furniture\",\n",
    "    \"bathroom accessory\",\n",
    "    \"facial tissue holder\",\n",
    "    \"pressure cooker\",\n",
    "    \"kitchen appliance\",\n",
    "    \"tire\",\n",
    "    \"ruler\",\n",
    "    \"luggage and bags\",\n",
    "    \"microphone\",\n",
    "    \"broccoli\",\n",
    "    \"umbrella\",\n",
    "    \"pastry\",\n",
    "    \"grapefruit\",\n",
    "    \"band-aid\",\n",
    "    \"animal\",\n",
    "    \"bell pepper\",\n",
    "    \"turkey\",\n",
    "    \"lily\",\n",
    "    \"pomegranate\",\n",
    "    \"doughnut\",\n",
    "    \"glasses\",\n",
    "    \"human nose\",\n",
    "    \"pen\",\n",
    "    \"ant\",\n",
    "    \"car\",\n",
    "    \"aircraft\",\n",
    "    \"human hand\",\n",
    "    \"skunk\",\n",
    "    \"teddy bear\",\n",
    "    \"watermelon\",\n",
    "    \"cantaloupe\",\n",
    "    \"dishwasher\",\n",
    "    \"flute\",\n",
    "    \"balance beam\",\n",
    "    \"sandwich\",\n",
    "    \"shrimp\",\n",
    "    \"sewing machine\",\n",
    "    \"binoculars\",\n",
    "    \"rays and skates\",\n",
    "    \"ipod\",\n",
    "    \"accordion\",\n",
    "    \"willow\",\n",
    "    \"crab\",\n",
    "    \"crown\",\n",
    "    \"seahorse\",\n",
    "    \"perfume\",\n",
    "    \"alpaca\",\n",
    "    \"taxi\",\n",
    "    \"canoe\",\n",
    "    \"remote control\",\n",
    "    \"wheelchair\",\n",
    "    \"rugby ball\",\n",
    "    \"armadillo\",\n",
    "    \"maracas\",\n",
    "    \"helmet\",\n",
    "]\n",
    "\n",
    "VISUAL_GENOME_CLASS_NAMES = [\n",
    "    \"yolk\",\n",
    "    \"goal\",\n",
    "    \"bathroom\",\n",
    "    \"macaroni\",\n",
    "    \"umpire\",\n",
    "    \"toothpick\",\n",
    "    \"alarm clock\",\n",
    "    \"ceiling fan\",\n",
    "    \"photos\",\n",
    "    \"parrot\",\n",
    "    \"tail fin\",\n",
    "    \"birthday cake\",\n",
    "    \"calculator\",\n",
    "    \"catcher\",\n",
    "    \"toilet\",\n",
    "    \"batter\",\n",
    "    \"stop sign\",\n",
    "    \"stopsign\",\n",
    "    \"cone\",\n",
    "    \"microwave\",\n",
    "    \"microwave oven\",\n",
    "    \"skateboard ramp\",\n",
    "    \"tea\",\n",
    "    \"dugout\",\n",
    "    \"products\",\n",
    "    \"halter\",\n",
    "    \"kettle\",\n",
    "    \"kitchen\",\n",
    "    \"refrigerator\",\n",
    "    \"fridge\",\n",
    "    \"ostrich\",\n",
    "    \"bathtub\",\n",
    "    \"blinds\",\n",
    "    \"court\",\n",
    "    \"urinal\",\n",
    "    \"knee pads\",\n",
    "    \"bed\",\n",
    "    \"flamingo\",\n",
    "    \"giraffe\",\n",
    "    \"helmet\",\n",
    "    \"giraffes\",\n",
    "    \"tennis court\",\n",
    "    \"motorcycle\",\n",
    "    \"laptop\",\n",
    "    \"tea pot\",\n",
    "    \"horse\",\n",
    "    \"television\",\n",
    "    \"tv\",\n",
    "    \"shorts\",\n",
    "    \"manhole\",\n",
    "    \"dishwasher\",\n",
    "    \"jeans\",\n",
    "    \"sail\",\n",
    "    \"monitor\",\n",
    "    \"man\",\n",
    "    \"shirt\",\n",
    "    \"car\",\n",
    "    \"cat\",\n",
    "    \"garage door\",\n",
    "    \"bus\",\n",
    "    \"radiator\",\n",
    "    \"tights\",\n",
    "    \"sailboat\",\n",
    "    \"sail boat\",\n",
    "    \"racket\",\n",
    "    \"racquet\",\n",
    "    \"plate\",\n",
    "    \"rock wall\",\n",
    "    \"beach\",\n",
    "    \"trolley\",\n",
    "    \"ocean\",\n",
    "    \"headboard\",\n",
    "    \"head board\",\n",
    "    \"tea kettle\",\n",
    "    \"wetsuit\",\n",
    "    \"tennis racket\",\n",
    "    \"tennis racquet\",\n",
    "    \"sink\",\n",
    "    \"train\",\n",
    "    \"keyboard\",\n",
    "    \"sky\",\n",
    "    \"match\",\n",
    "    \"train station\",\n",
    "    \"stereo\",\n",
    "    \"bats\",\n",
    "    \"tennis player\",\n",
    "    \"toilet brush\",\n",
    "    \"lighter\",\n",
    "    \"pepper shaker\",\n",
    "    \"gazebo\",\n",
    "    \"hair dryer\",\n",
    "    \"elephant\",\n",
    "    \"toilet seat\",\n",
    "    \"zebra\",\n",
    "    \"skateboard\",\n",
    "    \"skate board\",\n",
    "    \"zebras\",\n",
    "    \"floor lamp\",\n",
    "    \"french fries\",\n",
    "    \"woman\",\n",
    "    \"player\",\n",
    "    \"tower\",\n",
    "    \"bicycle\",\n",
    "    \"magazines\",\n",
    "    \"christmas tree\",\n",
    "    \"umbrella\",\n",
    "    \"cow\",\n",
    "    \"pants\",\n",
    "    \"bike\",\n",
    "    \"field\",\n",
    "    \"living room\",\n",
    "    \"latch\",\n",
    "    \"bedroom\",\n",
    "    \"grape\",\n",
    "    \"castle\",\n",
    "    \"table\",\n",
    "    \"swan\",\n",
    "    \"blender\",\n",
    "    \"orange\",\n",
    "    \"teddy bear\",\n",
    "    \"net\",\n",
    "    \"meter\",\n",
    "    \"baseball field\",\n",
    "    \"runway\",\n",
    "    \"screen\",\n",
    "    \"ski boot\",\n",
    "    \"dog\",\n",
    "    \"clock\",\n",
    "    \"hair\",\n",
    "    \"avocado\",\n",
    "    \"highway\",\n",
    "    \"skirt\",\n",
    "    \"frisbee\",\n",
    "    \"parasail\",\n",
    "    \"desk\",\n",
    "    \"pizza\",\n",
    "    \"mouse\",\n",
    "    \"sign\",\n",
    "    \"shower curtain\",\n",
    "    \"polar bear\",\n",
    "    \"airplane\",\n",
    "    \"jersey\",\n",
    "    \"reigns\",\n",
    "    \"hot dog\",\n",
    "    \"hotdog\",\n",
    "    \"surfboard\",\n",
    "    \"surf board\",\n",
    "    \"couch\",\n",
    "    \"glass\",\n",
    "    \"snowboard\",\n",
    "    \"girl\",\n",
    "    \"plane\",\n",
    "    \"elephants\",\n",
    "    \"oven\",\n",
    "    \"dirt bike\",\n",
    "    \"tail wing\",\n",
    "    \"area rug\",\n",
    "    \"bear\",\n",
    "    \"washer\",\n",
    "    \"date\",\n",
    "    \"bow tie\",\n",
    "    \"cows\",\n",
    "    \"fire extinguisher\",\n",
    "    \"bamboo\",\n",
    "    \"wallet\",\n",
    "    \"tail feathers\",\n",
    "    \"truck\",\n",
    "    \"beach chair\",\n",
    "    \"boat\",\n",
    "    \"tablet\",\n",
    "    \"ceiling\",\n",
    "    \"chandelier\",\n",
    "    \"sheep\",\n",
    "    \"glasses\",\n",
    "    \"ram\",\n",
    "    \"kite\",\n",
    "    \"salad\",\n",
    "    \"pillow\",\n",
    "    \"fire hydrant\",\n",
    "    \"hydrant\",\n",
    "    \"mug\",\n",
    "    \"tarmac\",\n",
    "    \"computer\",\n",
    "    \"swimsuit\",\n",
    "    \"tomato\",\n",
    "    \"tire\",\n",
    "    \"cauliflower\",\n",
    "    \"fireplace\",\n",
    "    \"snow\",\n",
    "    \"building\",\n",
    "    \"sandwich\",\n",
    "    \"weather vane\",\n",
    "    \"bird\",\n",
    "    \"jacket\",\n",
    "    \"chair\",\n",
    "    \"water\",\n",
    "    \"cats\",\n",
    "    \"soccer ball\",\n",
    "    \"horses\",\n",
    "    \"drapes\",\n",
    "    \"barn\",\n",
    "    \"engine\",\n",
    "    \"cake\",\n",
    "    \"head\",\n",
    "    \"head band\",\n",
    "    \"skier\",\n",
    "    \"town\",\n",
    "    \"bath tub\",\n",
    "    \"bowl\",\n",
    "    \"stove\",\n",
    "    \"tongue\",\n",
    "    \"coffee table\",\n",
    "    \"floor\",\n",
    "    \"uniform\",\n",
    "    \"ottoman\",\n",
    "    \"broccoli\",\n",
    "    \"olive\",\n",
    "    \"mound\",\n",
    "    \"pitcher\",\n",
    "    \"food\",\n",
    "    \"paintings\",\n",
    "    \"traffic light\",\n",
    "    \"parking meter\",\n",
    "    \"bananas\",\n",
    "    \"mountain\",\n",
    "    \"cage\",\n",
    "    \"hedge\",\n",
    "    \"motorcycles\",\n",
    "    \"wet suit\",\n",
    "    \"radish\",\n",
    "    \"teddy bears\",\n",
    "    \"monitors\",\n",
    "    \"suitcase\",\n",
    "    \"suit case\",\n",
    "    \"drawers\",\n",
    "    \"grass\",\n",
    "    \"apple\",\n",
    "    \"lamp\",\n",
    "    \"goggles\",\n",
    "    \"boy\",\n",
    "    \"armchair\",\n",
    "    \"ramp\",\n",
    "    \"burner\",\n",
    "    \"lamb\",\n",
    "    \"cup\",\n",
    "    \"tank top\",\n",
    "    \"boats\",\n",
    "    \"hat\",\n",
    "    \"soup\",\n",
    "    \"fence\",\n",
    "    \"necklace\",\n",
    "    \"visor\",\n",
    "    \"coffee\",\n",
    "    \"bottle\",\n",
    "    \"stool\",\n",
    "    \"shoe\",\n",
    "    \"surfer\",\n",
    "    \"stop\",\n",
    "    \"backpack\",\n",
    "    \"shin guard\",\n",
    "    \"wii remote\",\n",
    "    \"wall\",\n",
    "    \"pizza slice\",\n",
    "    \"home plate\",\n",
    "    \"van\",\n",
    "    \"packet\",\n",
    "    \"earrings\",\n",
    "    \"wristband\",\n",
    "    \"tracks\",\n",
    "    \"mitt\",\n",
    "    \"dome\",\n",
    "    \"snowboarder\",\n",
    "    \"faucet\",\n",
    "    \"toiletries\",\n",
    "    \"ski boots\",\n",
    "    \"room\",\n",
    "    \"fork\",\n",
    "    \"snow suit\",\n",
    "    \"banana slice\",\n",
    "    \"bench\",\n",
    "    \"tie\",\n",
    "    \"burners\",\n",
    "    \"stuffed animals\",\n",
    "    \"zoo\",\n",
    "    \"train platform\",\n",
    "    \"cupcake\",\n",
    "    \"curtain\",\n",
    "    \"ear\",\n",
    "    \"tissue box\",\n",
    "    \"bread\",\n",
    "    \"scissors\",\n",
    "    \"vase\",\n",
    "    \"herd\",\n",
    "    \"smoke\",\n",
    "    \"skylight\",\n",
    "    \"cub\",\n",
    "    \"tail\",\n",
    "    \"cutting board\",\n",
    "    \"wave\",\n",
    "    \"hedges\",\n",
    "    \"windshield\",\n",
    "    \"apples\",\n",
    "    \"mirror\",\n",
    "    \"license plate\",\n",
    "    \"tree\",\n",
    "    \"wheel\",\n",
    "    \"ski pole\",\n",
    "    \"clock tower\",\n",
    "    \"freezer\",\n",
    "    \"luggage\",\n",
    "    \"skateboarder\",\n",
    "    \"mousepad\",\n",
    "    \"road\",\n",
    "    \"bat\",\n",
    "    \"toilet tank\",\n",
    "    \"vanity\",\n",
    "    \"neck\",\n",
    "    \"cliff\",\n",
    "    \"tub\",\n",
    "    \"sprinkles\",\n",
    "    \"dresser\",\n",
    "    \"street\",\n",
    "    \"wing\",\n",
    "    \"suit\",\n",
    "    \"veggie\",\n",
    "    \"palm trees\",\n",
    "    \"urinals\",\n",
    "    \"door\",\n",
    "    \"propeller\",\n",
    "    \"keys\",\n",
    "    \"skate park\",\n",
    "    \"platform\",\n",
    "    \"pot\",\n",
    "    \"towel\",\n",
    "    \"computer monitor\",\n",
    "    \"flip flop\",\n",
    "    \"eggs\",\n",
    "    \"shed\",\n",
    "    \"moped\",\n",
    "    \"sand\",\n",
    "    \"face\",\n",
    "    \"scissor\",\n",
    "    \"carts\",\n",
    "    \"squash\",\n",
    "    \"pillows\",\n",
    "    \"family\",\n",
    "    \"glove\",\n",
    "    \"rug\",\n",
    "    \"watch\",\n",
    "    \"grafitti\",\n",
    "    \"dogs\",\n",
    "    \"scoreboard\",\n",
    "    \"basket\",\n",
    "    \"poster\",\n",
    "    \"duck\",\n",
    "    \"horns\",\n",
    "    \"bears\",\n",
    "    \"jeep\",\n",
    "    \"painting\",\n",
    "    \"lighthouse\",\n",
    "    \"remote control\",\n",
    "    \"toaster\",\n",
    "    \"vegetables\",\n",
    "    \"surfboards\",\n",
    "    \"ducks\",\n",
    "    \"lane\",\n",
    "    \"carrots\",\n",
    "    \"market\",\n",
    "    \"paper towels\",\n",
    "    \"island\",\n",
    "    \"blueberries\",\n",
    "    \"smile\",\n",
    "    \"balloons\",\n",
    "    \"stroller\",\n",
    "    \"napkin\",\n",
    "    \"towels\",\n",
    "    \"papers\",\n",
    "    \"person\",\n",
    "    \"train tracks\",\n",
    "    \"child\",\n",
    "    \"headband\",\n",
    "    \"pool\",\n",
    "    \"plant\",\n",
    "    \"harbor\",\n",
    "    \"counter\",\n",
    "    \"hand\",\n",
    "    \"house\",\n",
    "    \"donut\",\n",
    "    \"doughnut\",\n",
    "    \"knot\",\n",
    "    \"soccer player\",\n",
    "    \"seagull\",\n",
    "    \"bottles\",\n",
    "    \"buses\",\n",
    "    \"coat\",\n",
    "    \"trees\",\n",
    "    \"geese\",\n",
    "    \"bun\",\n",
    "    \"toilet bowl\",\n",
    "    \"trunk\",\n",
    "    \"station\",\n",
    "    \"bikini\",\n",
    "    \"goatee\",\n",
    "    \"lounge chair\",\n",
    "    \"breakfast\",\n",
    "    \"nose\",\n",
    "    \"moon\",\n",
    "    \"river\",\n",
    "    \"racer\",\n",
    "    \"picture\",\n",
    "    \"shaker\",\n",
    "    \"sidewalk\",\n",
    "    \"side walk\",\n",
    "    \"shutters\",\n",
    "    \"stove top\",\n",
    "    \"stovetop\",\n",
    "    \"church\",\n",
    "    \"lampshade\",\n",
    "    \"map\",\n",
    "    \"shop\",\n",
    "    \"platter\",\n",
    "    \"airport\",\n",
    "    \"hoodie\",\n",
    "    \"oranges\",\n",
    "    \"woods\",\n",
    "    \"enclosure\",\n",
    "    \"skatepark\",\n",
    "    \"vases\",\n",
    "    \"city\",\n",
    "    \"park\",\n",
    "    \"mailbox\",\n",
    "    \"balloon\",\n",
    "    \"billboard\",\n",
    "    \"pasture\",\n",
    "    \"portrait\",\n",
    "    \"forehead\",\n",
    "    \"ship\",\n",
    "    \"cookie\",\n",
    "    \"seaweed\",\n",
    "    \"sofa\",\n",
    "    \"slats\",\n",
    "    \"tomato slice\",\n",
    "    \"tractor\",\n",
    "    \"bull\",\n",
    "    \"suitcases\",\n",
    "    \"graffiti\",\n",
    "    \"policeman\",\n",
    "    \"remotes\",\n",
    "    \"pens\",\n",
    "    \"window sill\",\n",
    "    \"suspenders\",\n",
    "    \"easel\",\n",
    "    \"tray\",\n",
    "    \"straw\",\n",
    "    \"collar\",\n",
    "    \"shower\",\n",
    "    \"bag\",\n",
    "    \"scooter\",\n",
    "    \"tails\",\n",
    "    \"toilet lid\",\n",
    "    \"panda\",\n",
    "    \"comforter\",\n",
    "    \"outlet\",\n",
    "    \"stems\",\n",
    "    \"valley\",\n",
    "    \"flag\",\n",
    "    \"jockey\",\n",
    "    \"gravel\",\n",
    "    \"mouth\",\n",
    "    \"window\",\n",
    "    \"bridge\",\n",
    "    \"corn\",\n",
    "    \"mountains\",\n",
    "    \"beer\",\n",
    "    \"pitcher's mound\",\n",
    "    \"palm tree\",\n",
    "    \"crowd\",\n",
    "    \"skis\",\n",
    "    \"phone\",\n",
    "    \"banana bunch\",\n",
    "    \"tennis shoe\",\n",
    "    \"ground\",\n",
    "    \"carpet\",\n",
    "    \"eye\",\n",
    "    \"urn\",\n",
    "    \"beak\",\n",
    "    \"giraffe head\",\n",
    "    \"steeple\",\n",
    "    \"mattress\",\n",
    "    \"baseball player\",\n",
    "    \"wine\",\n",
    "    \"water bottle\",\n",
    "    \"kitten\",\n",
    "    \"archway\",\n",
    "    \"candle\",\n",
    "    \"croissant\",\n",
    "    \"tennis ball\",\n",
    "    \"dress\",\n",
    "    \"column\",\n",
    "    \"utensils\",\n",
    "    \"cell phone\",\n",
    "    \"computer mouse\",\n",
    "    \"cap\",\n",
    "    \"lawn\",\n",
    "    \"airplanes\",\n",
    "    \"carriage\",\n",
    "    \"snout\",\n",
    "    \"cabinets\",\n",
    "    \"lemons\",\n",
    "    \"grill\",\n",
    "    \"umbrellas\",\n",
    "    \"meat\",\n",
    "    \"wagon\",\n",
    "    \"ipod\",\n",
    "    \"bookshelf\",\n",
    "    \"cart\",\n",
    "    \"roof\",\n",
    "    \"hay\",\n",
    "    \"ski pants\",\n",
    "    \"seat\",\n",
    "    \"mane\",\n",
    "    \"bikes\",\n",
    "    \"drawer\",\n",
    "    \"game\",\n",
    "    \"clock face\",\n",
    "    \"boys\",\n",
    "    \"rider\",\n",
    "    \"fire escape\",\n",
    "    \"slope\",\n",
    "    \"iphone\",\n",
    "    \"pumpkin\",\n",
    "    \"pan\",\n",
    "    \"chopsticks\",\n",
    "    \"hill\",\n",
    "    \"uniforms\",\n",
    "    \"cleat\",\n",
    "    \"costume\",\n",
    "    \"cabin\",\n",
    "    \"police officer\",\n",
    "    \"ears\",\n",
    "    \"egg\",\n",
    "    \"trash can\",\n",
    "    \"horn\",\n",
    "    \"arrow\",\n",
    "    \"toothbrush\",\n",
    "    \"carrot\",\n",
    "    \"banana\",\n",
    "    \"planes\",\n",
    "    \"garden\",\n",
    "    \"forest\",\n",
    "    \"brocolli\",\n",
    "    \"aircraft\",\n",
    "    \"front window\",\n",
    "    \"dashboard\",\n",
    "    \"statue\",\n",
    "    \"saucer\",\n",
    "    \"people\",\n",
    "    \"silverware\",\n",
    "    \"fruit\",\n",
    "    \"drain\",\n",
    "    \"jet\",\n",
    "    \"speaker\",\n",
    "    \"eyes\",\n",
    "    \"railway\",\n",
    "    \"lid\",\n",
    "    \"soap\",\n",
    "    \"rocks\",\n",
    "    \"office chair\",\n",
    "    \"door knob\",\n",
    "    \"banana peel\",\n",
    "    \"baseball game\",\n",
    "    \"asparagus\",\n",
    "    \"spoon\",\n",
    "    \"cabinet door\",\n",
    "    \"pineapple\",\n",
    "    \"traffic cone\",\n",
    "    \"nightstand\",\n",
    "    \"night stand\",\n",
    "    \"teapot\",\n",
    "    \"taxi\",\n",
    "    \"chimney\",\n",
    "    \"lake\",\n",
    "    \"suit jacket\",\n",
    "    \"train engine\",\n",
    "    \"ball\",\n",
    "    \"wrist band\",\n",
    "    \"pickle\",\n",
    "    \"fruits\",\n",
    "    \"pad\",\n",
    "    \"dispenser\",\n",
    "    \"bridle\",\n",
    "    \"breast\",\n",
    "    \"cones\",\n",
    "    \"headlight\",\n",
    "    \"necktie\",\n",
    "    \"skater\",\n",
    "    \"toilet paper\",\n",
    "    \"skyscraper\",\n",
    "    \"telephone\",\n",
    "    \"ox\",\n",
    "    \"roadway\",\n",
    "    \"sock\",\n",
    "    \"paddle\",\n",
    "    \"dishes\",\n",
    "    \"hills\",\n",
    "    \"street sign\",\n",
    "    \"headlights\",\n",
    "    \"benches\",\n",
    "    \"fuselage\",\n",
    "    \"card\",\n",
    "    \"napkins\",\n",
    "    \"bush\",\n",
    "    \"rice\",\n",
    "    \"computer screen\",\n",
    "    \"spokes\",\n",
    "    \"flowers\",\n",
    "    \"bucket\",\n",
    "    \"rock\",\n",
    "    \"pole\",\n",
    "    \"pear\",\n",
    "    \"sauce\",\n",
    "    \"store\",\n",
    "    \"juice\",\n",
    "    \"knobs\",\n",
    "    \"mustard\",\n",
    "    \"ski\",\n",
    "    \"stands\",\n",
    "    \"cabinet\",\n",
    "    \"dirt\",\n",
    "    \"goats\",\n",
    "    \"wine glass\",\n",
    "    \"spectators\",\n",
    "    \"crate\",\n",
    "    \"pancakes\",\n",
    "    \"kids\",\n",
    "    \"engines\",\n",
    "    \"shade\",\n",
    "    \"feeder\",\n",
    "    \"cellphone\",\n",
    "    \"pepper\",\n",
    "    \"blanket\",\n",
    "    \"sunglasses\",\n",
    "    \"train car\",\n",
    "    \"magnet\",\n",
    "    \"donuts\",\n",
    "    \"doughnuts\",\n",
    "    \"sweater\",\n",
    "    \"signal\",\n",
    "    \"advertisement\",\n",
    "    \"log\",\n",
    "    \"vent\",\n",
    "    \"whiskers\",\n",
    "    \"adult\",\n",
    "    \"arch\",\n",
    "    \"locomotive\",\n",
    "    \"tennis match\",\n",
    "    \"tent\",\n",
    "    \"motorbike\",\n",
    "    \"magnets\",\n",
    "    \"night\",\n",
    "    \"marina\",\n",
    "    \"wool\",\n",
    "    \"vest\",\n",
    "    \"railroad tracks\",\n",
    "    \"stuffed bear\",\n",
    "    \"moustache\",\n",
    "    \"bib\",\n",
    "    \"frame\",\n",
    "    \"snow pants\",\n",
    "    \"tank\",\n",
    "    \"undershirt\",\n",
    "    \"icons\",\n",
    "    \"neck tie\",\n",
    "    \"beams\",\n",
    "    \"baseball bat\",\n",
    "    \"safety cone\",\n",
    "    \"paper towel\",\n",
    "    \"bedspread\",\n",
    "    \"can\",\n",
    "    \"container\",\n",
    "    \"flower\",\n",
    "    \"vehicle\",\n",
    "    \"tomatoes\",\n",
    "    \"back wheel\",\n",
    "    \"soccer field\",\n",
    "    \"nostril\",\n",
    "    \"suv\",\n",
    "    \"buildings\",\n",
    "    \"canopy\",\n",
    "    \"flame\",\n",
    "    \"kid\",\n",
    "    \"baseball\",\n",
    "    \"throw pillow\",\n",
    "    \"belt\",\n",
    "    \"rainbow\",\n",
    "    \"lemon\",\n",
    "    \"oven door\",\n",
    "    \"tag\",\n",
    "    \"books\",\n",
    "    \"monument\",\n",
    "    \"men\",\n",
    "    \"shadow\",\n",
    "    \"bicycles\",\n",
    "    \"cars\",\n",
    "    \"lamp shade\",\n",
    "    \"pine tree\",\n",
    "    \"bouquet\",\n",
    "    \"toothpaste\",\n",
    "    \"potato\",\n",
    "    \"sinks\",\n",
    "    \"hook\",\n",
    "    \"switch\",\n",
    "    \"lamp post\",\n",
    "    \"lamppost\",\n",
    "    \"lapel\",\n",
    "    \"desert\",\n",
    "    \"knob\",\n",
    "    \"chairs\",\n",
    "    \"pasta\",\n",
    "    \"feathers\",\n",
    "    \"hole\",\n",
    "    \"meal\",\n",
    "    \"station wagon\",\n",
    "    \"kites\",\n",
    "    \"boots\",\n",
    "    \"baby\",\n",
    "    \"biker\",\n",
    "    \"gate\",\n",
    "    \"signal light\",\n",
    "    \"headphones\",\n",
    "    \"goat\",\n",
    "    \"waves\",\n",
    "    \"bumper\",\n",
    "    \"bud\",\n",
    "    \"logo\",\n",
    "    \"curtains\",\n",
    "    \"american flag\",\n",
    "    \"yacht\",\n",
    "    \"box\",\n",
    "    \"baseball cap\",\n",
    "    \"fries\",\n",
    "    \"controller\",\n",
    "    \"awning\",\n",
    "    \"path\",\n",
    "    \"front legs\",\n",
    "    \"life jacket\",\n",
    "    \"purse\",\n",
    "    \"outfield\",\n",
    "    \"pigeon\",\n",
    "    \"toddler\",\n",
    "    \"beard\",\n",
    "    \"thumb\",\n",
    "    \"water tank\",\n",
    "    \"board\",\n",
    "    \"parade\",\n",
    "    \"robe\",\n",
    "    \"newspaper\",\n",
    "    \"wires\",\n",
    "    \"camera\",\n",
    "    \"pastries\",\n",
    "    \"deck\",\n",
    "    \"watermelon\",\n",
    "    \"clouds\",\n",
    "    \"deer\",\n",
    "    \"motorcyclist\",\n",
    "    \"kneepad\",\n",
    "    \"sneakers\",\n",
    "    \"women\",\n",
    "    \"onions\",\n",
    "    \"eyebrow\",\n",
    "    \"gas station\",\n",
    "    \"vane\",\n",
    "    \"girls\",\n",
    "    \"trash\",\n",
    "    \"numerals\",\n",
    "    \"knife\",\n",
    "    \"tags\",\n",
    "    \"light\",\n",
    "    \"bunch\",\n",
    "    \"outfit\",\n",
    "    \"groom\",\n",
    "    \"infield\",\n",
    "    \"frosting\",\n",
    "    \"forks\",\n",
    "    \"entertainment center\",\n",
    "    \"stuffed animal\",\n",
    "    \"yard\",\n",
    "    \"numeral\",\n",
    "    \"ladder\",\n",
    "    \"shoes\",\n",
    "    \"bracelet\",\n",
    "    \"teeth\",\n",
    "    \"guy\",\n",
    "    \"display case\",\n",
    "    \"cushion\",\n",
    "    \"post\",\n",
    "    \"pathway\",\n",
    "    \"tablecloth\",\n",
    "    \"skiers\",\n",
    "    \"trouser\",\n",
    "    \"cloud\",\n",
    "    \"hands\",\n",
    "    \"produce\",\n",
    "    \"beam\",\n",
    "    \"ketchup\",\n",
    "    \"paw\",\n",
    "    \"dish\",\n",
    "    \"raft\",\n",
    "    \"crosswalk\",\n",
    "    \"front wheel\",\n",
    "    \"toast\",\n",
    "    \"cattle\",\n",
    "    \"players\",\n",
    "    \"group\",\n",
    "    \"coffee pot\",\n",
    "    \"track\",\n",
    "    \"cowboy hat\",\n",
    "    \"petal\",\n",
    "    \"eyeglasses\",\n",
    "    \"handle\",\n",
    "    \"table cloth\",\n",
    "    \"jets\",\n",
    "    \"shakers\",\n",
    "    \"remote\",\n",
    "    \"snowsuit\",\n",
    "    \"bushes\",\n",
    "    \"dessert\",\n",
    "    \"leg\",\n",
    "    \"eagle\",\n",
    "    \"fire truck\",\n",
    "    \"firetruck\",\n",
    "    \"game controller\",\n",
    "    \"smartphone\",\n",
    "    \"backsplash\",\n",
    "    \"trains\",\n",
    "    \"shore\",\n",
    "    \"signs\",\n",
    "    \"bell\",\n",
    "    \"cupboards\",\n",
    "    \"sweat band\",\n",
    "    \"sack\",\n",
    "    \"ankle\",\n",
    "    \"coin slot\",\n",
    "    \"bagel\",\n",
    "    \"masts\",\n",
    "    \"police\",\n",
    "    \"drawing\",\n",
    "    \"biscuit\",\n",
    "    \"toy\",\n",
    "    \"legs\",\n",
    "    \"pavement\",\n",
    "    \"outside\",\n",
    "    \"wheels\",\n",
    "    \"driver\",\n",
    "    \"numbers\",\n",
    "    \"blazer\",\n",
    "    \"pen\",\n",
    "    \"cabbage\",\n",
    "    \"trucks\",\n",
    "    \"key\",\n",
    "    \"saddle\",\n",
    "    \"pillow case\",\n",
    "    \"goose\",\n",
    "    \"label\",\n",
    "    \"boulder\",\n",
    "    \"pajamas\",\n",
    "    \"wrist\",\n",
    "    \"shelf\",\n",
    "    \"cross\",\n",
    "    \"coffee cup\",\n",
    "    \"foliage\",\n",
    "    \"lot\",\n",
    "    \"fry\",\n",
    "    \"air\",\n",
    "    \"officer\",\n",
    "    \"pepperoni\",\n",
    "    \"cheese\",\n",
    "    \"lady\",\n",
    "    \"kickstand\",\n",
    "    \"counter top\",\n",
    "    \"veggies\",\n",
    "    \"baseball uniform\",\n",
    "    \"book shelf\",\n",
    "    \"bags\",\n",
    "    \"pickles\",\n",
    "    \"stand\",\n",
    "    \"netting\",\n",
    "    \"lettuce\",\n",
    "    \"facial hair\",\n",
    "    \"lime\",\n",
    "    \"animals\",\n",
    "    \"drape\",\n",
    "    \"boot\",\n",
    "    \"railing\",\n",
    "    \"end table\",\n",
    "    \"shin guards\",\n",
    "    \"steps\",\n",
    "    \"trashcan\",\n",
    "    \"tusk\",\n",
    "    \"head light\",\n",
    "    \"walkway\",\n",
    "    \"cockpit\",\n",
    "    \"tennis net\",\n",
    "    \"animal\",\n",
    "    \"boardwalk\",\n",
    "    \"keypad\",\n",
    "    \"bookcase\",\n",
    "    \"blueberry\",\n",
    "    \"trash bag\",\n",
    "    \"ski poles\",\n",
    "    \"parking lot\",\n",
    "    \"gas tank\",\n",
    "    \"beds\",\n",
    "    \"fan\",\n",
    "    \"base\",\n",
    "    \"soap dispenser\",\n",
    "    \"banner\",\n",
    "    \"life vest\",\n",
    "    \"train front\",\n",
    "    \"word\",\n",
    "    \"cab\",\n",
    "    \"liquid\",\n",
    "    \"exhaust pipe\",\n",
    "    \"sneaker\",\n",
    "    \"light fixture\",\n",
    "    \"power lines\",\n",
    "    \"curb\",\n",
    "    \"scene\",\n",
    "    \"buttons\",\n",
    "    \"roman numerals\",\n",
    "    \"muzzle\",\n",
    "    \"sticker\",\n",
    "    \"bacon\",\n",
    "    \"pizzas\",\n",
    "    \"paper\",\n",
    "    \"feet\",\n",
    "    \"stairs\",\n",
    "    \"triangle\",\n",
    "    \"plants\",\n",
    "    \"rope\",\n",
    "    \"beans\",\n",
    "    \"brim\",\n",
    "    \"beverage\",\n",
    "    \"letters\",\n",
    "    \"soda\",\n",
    "    \"menu\",\n",
    "    \"finger\",\n",
    "    \"dvds\",\n",
    "    \"candles\",\n",
    "    \"picnic table\",\n",
    "    \"wine bottle\",\n",
    "    \"pencil\",\n",
    "    \"tree trunk\",\n",
    "    \"nail\",\n",
    "    \"mantle\",\n",
    "    \"countertop\",\n",
    "    \"view\",\n",
    "    \"line\",\n",
    "    \"motor bike\",\n",
    "    \"audience\",\n",
    "    \"traffic sign\",\n",
    "    \"arm\",\n",
    "    \"pedestrian\",\n",
    "    \"stabilizer\",\n",
    "    \"dock\",\n",
    "    \"doorway\",\n",
    "    \"bedding\",\n",
    "    \"end\",\n",
    "    \"worker\",\n",
    "    \"canal\",\n",
    "    \"crane\",\n",
    "    \"grate\",\n",
    "    \"little girl\",\n",
    "    \"rims\",\n",
    "    \"passenger car\",\n",
    "    \"plates\",\n",
    "    \"background\",\n",
    "    \"peel\",\n",
    "    \"brake light\",\n",
    "    \"roman numeral\",\n",
    "    \"string\",\n",
    "    \"tines\",\n",
    "    \"turf\",\n",
    "    \"armrest\",\n",
    "    \"shower head\",\n",
    "    \"leash\",\n",
    "    \"stones\",\n",
    "    \"stoplight\",\n",
    "    \"handle bars\",\n",
    "    \"front\",\n",
    "    \"scarf\",\n",
    "    \"band\",\n",
    "    \"jean\",\n",
    "    \"tennis\",\n",
    "    \"pile\",\n",
    "    \"doorknob\",\n",
    "    \"foot\",\n",
    "    \"houses\",\n",
    "    \"windows\",\n",
    "    \"restaurant\",\n",
    "    \"booth\",\n",
    "    \"cardboard box\",\n",
    "    \"fingers\",\n",
    "    \"mountain range\",\n",
    "    \"bleachers\",\n",
    "    \"rail\",\n",
    "    \"pastry\",\n",
    "    \"canoe\",\n",
    "    \"sun\",\n",
    "    \"eye glasses\",\n",
    "    \"salt shaker\",\n",
    "    \"number\",\n",
    "    \"fish\",\n",
    "    \"knee pad\",\n",
    "    \"fur\",\n",
    "    \"she\",\n",
    "    \"shower door\",\n",
    "    \"rod\",\n",
    "    \"branches\",\n",
    "    \"birds\",\n",
    "    \"printer\",\n",
    "    \"sunset\",\n",
    "    \"median\",\n",
    "    \"shutter\",\n",
    "    \"slice\",\n",
    "    \"heater\",\n",
    "    \"prongs\",\n",
    "    \"bathing suit\",\n",
    "    \"skiier\",\n",
    "    \"rack\",\n",
    "    \"book\",\n",
    "    \"blade\",\n",
    "    \"apartment\",\n",
    "    \"manhole cover\",\n",
    "    \"stools\",\n",
    "    \"overhang\",\n",
    "    \"door handle\",\n",
    "    \"couple\",\n",
    "    \"picture frame\",\n",
    "    \"chicken\",\n",
    "    \"planter\",\n",
    "    \"seats\",\n",
    "    \"hour hand\",\n",
    "    \"dvd player\",\n",
    "    \"ski slope\",\n",
    "    \"french fry\",\n",
    "    \"bowls\",\n",
    "    \"top\",\n",
    "    \"landing gear\",\n",
    "    \"coffee maker\",\n",
    "    \"melon\",\n",
    "    \"computers\",\n",
    "    \"light switch\",\n",
    "    \"jar\",\n",
    "    \"tv stand\",\n",
    "    \"overalls\",\n",
    "    \"garage\",\n",
    "    \"tabletop\",\n",
    "    \"writing\",\n",
    "    \"doors\",\n",
    "    \"stadium\",\n",
    "    \"placemat\",\n",
    "    \"air vent\",\n",
    "    \"trick\",\n",
    "    \"sled\",\n",
    "    \"mast\",\n",
    "    \"pond\",\n",
    "    \"steering wheel\",\n",
    "    \"baseball glove\",\n",
    "    \"watermark\",\n",
    "    \"pie\",\n",
    "    \"sandwhich\",\n",
    "    \"cpu\",\n",
    "    \"mushroom\",\n",
    "    \"power pole\",\n",
    "    \"dirt road\",\n",
    "    \"handles\",\n",
    "    \"speakers\",\n",
    "    \"fender\",\n",
    "    \"telephone pole\",\n",
    "    \"strawberry\",\n",
    "    \"mask\",\n",
    "    \"children\",\n",
    "    \"crust\",\n",
    "    \"art\",\n",
    "    \"rim\",\n",
    "    \"branch\",\n",
    "    \"display\",\n",
    "    \"grasses\",\n",
    "    \"photo\",\n",
    "    \"receipt\",\n",
    "    \"instructions\",\n",
    "    \"herbs\",\n",
    "    \"toys\",\n",
    "    \"handlebars\",\n",
    "    \"trailer\",\n",
    "    \"sandal\",\n",
    "    \"skull\",\n",
    "    \"hangar\",\n",
    "    \"pipe\",\n",
    "    \"office\",\n",
    "    \"chest\",\n",
    "    \"lamps\",\n",
    "    \"horizon\",\n",
    "    \"calendar\",\n",
    "    \"foam\",\n",
    "    \"stone\",\n",
    "    \"bars\",\n",
    "    \"button\",\n",
    "    \"poles\",\n",
    "    \"heart\",\n",
    "    \"hose\",\n",
    "    \"jet engine\",\n",
    "    \"potatoes\",\n",
    "    \"rain\",\n",
    "    \"magazine\",\n",
    "    \"chain\",\n",
    "    \"footboard\",\n",
    "    \"tee shirt\",\n",
    "    \"design\",\n",
    "    \"walls\",\n",
    "    \"copyright\",\n",
    "    \"pictures\",\n",
    "    \"pillar\",\n",
    "    \"drink\",\n",
    "    \"barrier\",\n",
    "    \"boxes\",\n",
    "    \"chocolate\",\n",
    "    \"chef\",\n",
    "    \"slot\",\n",
    "    \"sweatpants\",\n",
    "    \"face mask\",\n",
    "    \"icing\",\n",
    "    \"wipers\",\n",
    "    \"circle\",\n",
    "    \"bin\",\n",
    "    \"kitty\",\n",
    "    \"electronics\",\n",
    "    \"wild\",\n",
    "    \"tiles\",\n",
    "    \"steam\",\n",
    "    \"lettering\",\n",
    "    \"bathroom sink\",\n",
    "    \"laptop computer\",\n",
    "    \"cherry\",\n",
    "    \"spire\",\n",
    "    \"conductor\",\n",
    "    \"sheet\",\n",
    "    \"slab\",\n",
    "    \"windshield wipers\",\n",
    "    \"storefront\",\n",
    "    \"hill side\",\n",
    "    \"spatula\",\n",
    "    \"tail light\",\n",
    "    \"taillight\",\n",
    "    \"bean\",\n",
    "    \"wire\",\n",
    "    \"intersection\",\n",
    "    \"pier\",\n",
    "    \"snow board\",\n",
    "    \"trunks\",\n",
    "    \"website\",\n",
    "    \"bolt\",\n",
    "    \"kayak\",\n",
    "    \"nuts\",\n",
    "    \"holder\",\n",
    "    \"turbine\",\n",
    "    \"stop light\",\n",
    "    \"olives\",\n",
    "    \"ball cap\",\n",
    "    \"burger\",\n",
    "    \"barrel\",\n",
    "    \"fans\",\n",
    "    \"beanie\",\n",
    "    \"stem\",\n",
    "    \"lines\",\n",
    "    \"traffic signal\",\n",
    "    \"sweatshirt\",\n",
    "    \"handbag\",\n",
    "    \"mulch\",\n",
    "    \"socks\",\n",
    "    \"landscape\",\n",
    "    \"soda can\",\n",
    "    \"shelves\",\n",
    "    \"ski lift\",\n",
    "    \"cord\",\n",
    "    \"vegetable\",\n",
    "    \"apron\",\n",
    "    \"blind\",\n",
    "    \"bracelets\",\n",
    "    \"stickers\",\n",
    "    \"traffic\",\n",
    "    \"strip\",\n",
    "    \"tennis shoes\",\n",
    "    \"swim trunks\",\n",
    "    \"hillside\",\n",
    "    \"sandals\",\n",
    "    \"concrete\",\n",
    "    \"lips\",\n",
    "    \"butter knife\",\n",
    "    \"words\",\n",
    "    \"leaves\",\n",
    "    \"train cars\",\n",
    "    \"spoke\",\n",
    "    \"cereal\",\n",
    "    \"pine trees\",\n",
    "    \"cooler\",\n",
    "    \"bangs\",\n",
    "    \"half\",\n",
    "    \"sheets\",\n",
    "    \"figurine\",\n",
    "    \"park bench\",\n",
    "    \"stack\",\n",
    "    \"second floor\",\n",
    "    \"motor\",\n",
    "    \"hand towel\",\n",
    "    \"wristwatch\",\n",
    "    \"spectator\",\n",
    "    \"tissues\",\n",
    "    \"flip flops\",\n",
    "    \"quilt\",\n",
    "    \"floret\",\n",
    "    \"calf\",\n",
    "    \"back pack\",\n",
    "    \"grapes\",\n",
    "    \"ski tracks\",\n",
    "    \"skin\",\n",
    "    \"bow\",\n",
    "    \"controls\",\n",
    "    \"dinner\",\n",
    "    \"baseball players\",\n",
    "    \"ad\",\n",
    "    \"ribbon\",\n",
    "    \"hotel\",\n",
    "    \"sea\",\n",
    "    \"cover\",\n",
    "    \"tarp\",\n",
    "    \"weather\",\n",
    "    \"notebook\",\n",
    "    \"mustache\",\n",
    "    \"stone wall\",\n",
    "    \"closet\",\n",
    "    \"statues\",\n",
    "    \"bank\",\n",
    "    \"skateboards\",\n",
    "    \"butter\",\n",
    "    \"dress shirt\",\n",
    "    \"knee\",\n",
    "    \"wood\",\n",
    "    \"laptops\",\n",
    "    \"cuff\",\n",
    "    \"hubcap\",\n",
    "    \"wings\",\n",
    "    \"range\",\n",
    "    \"structure\",\n",
    "    \"balls\",\n",
    "    \"tunnel\",\n",
    "    \"globe\",\n",
    "    \"utensil\",\n",
    "    \"dumpster\",\n",
    "    \"cd\",\n",
    "    \"floors\",\n",
    "    \"wrapper\",\n",
    "    \"folder\",\n",
    "    \"pocket\",\n",
    "    \"mother\",\n",
    "    \"ski goggles\",\n",
    "    \"posts\",\n",
    "    \"power line\",\n",
    "    \"wake\",\n",
    "    \"roses\",\n",
    "    \"train track\",\n",
    "    \"reflection\",\n",
    "    \"air conditioner\",\n",
    "    \"referee\",\n",
    "    \"barricade\",\n",
    "    \"baseball mitt\",\n",
    "    \"mouse pad\",\n",
    "    \"garbage can\",\n",
    "    \"buckle\",\n",
    "    \"footprints\",\n",
    "    \"lights\",\n",
    "    \"muffin\",\n",
    "    \"bracket\",\n",
    "    \"plug\",\n",
    "    \"taxi cab\",\n",
    "    \"drinks\",\n",
    "    \"surfers\",\n",
    "    \"arrows\",\n",
    "    \"control panel\",\n",
    "    \"ring\",\n",
    "    \"twigs\",\n",
    "    \"soil\",\n",
    "    \"skies\",\n",
    "    \"clock hand\",\n",
    "    \"caboose\",\n",
    "    \"playground\",\n",
    "    \"mango\",\n",
    "    \"stump\",\n",
    "    \"brick wall\",\n",
    "    \"screw\",\n",
    "    \"minivan\",\n",
    "    \"leaf\",\n",
    "    \"fencing\",\n",
    "    \"ledge\",\n",
    "    \"clothes\",\n",
    "    \"grass field\",\n",
    "    \"plumbing\",\n",
    "    \"blouse\",\n",
    "    \"patch\",\n",
    "    \"scaffolding\",\n",
    "    \"hamburger\",\n",
    "    \"utility pole\",\n",
    "    \"teddy\",\n",
    "    \"rose\",\n",
    "    \"skillet\",\n",
    "    \"cycle\",\n",
    "    \"cable\",\n",
    "    \"gloves\",\n",
    "    \"bark\",\n",
    "    \"decoration\",\n",
    "    \"tables\",\n",
    "    \"palm\",\n",
    "    \"wii\",\n",
    "    \"mountain top\",\n",
    "    \"shrub\",\n",
    "    \"hoof\",\n",
    "    \"celery\",\n",
    "    \"beads\",\n",
    "    \"plaque\",\n",
    "    \"flooring\",\n",
    "    \"surf\",\n",
    "    \"cloth\",\n",
    "    \"passenger\",\n",
    "    \"spot\",\n",
    "    \"plastic\",\n",
    "    \"knives\",\n",
    "    \"case\",\n",
    "    \"railroad\",\n",
    "    \"pony\",\n",
    "    \"muffler\",\n",
    "    \"hot dogs\",\n",
    "    \"hotdogs\",\n",
    "    \"stripe\",\n",
    "    \"scale\",\n",
    "    \"block\",\n",
    "    \"recliner\",\n",
    "    \"body\",\n",
    "    \"shades\",\n",
    "    \"tap\",\n",
    "    \"tools\",\n",
    "    \"cupboard\",\n",
    "    \"wallpaper\",\n",
    "    \"sculpture\",\n",
    "    \"surface\",\n",
    "    \"sedan\",\n",
    "    \"distance\",\n",
    "    \"shrubs\",\n",
    "    \"skiis\",\n",
    "    \"lift\",\n",
    "    \"bottom\",\n",
    "    \"cleats\",\n",
    "    \"roll\",\n",
    "    \"clothing\",\n",
    "    \"bed frame\",\n",
    "    \"slacks\",\n",
    "    \"tail lights\",\n",
    "    \"doll\",\n",
    "    \"traffic lights\",\n",
    "    \"symbol\",\n",
    "    \"strings\",\n",
    "    \"fixtures\",\n",
    "    \"short\",\n",
    "    \"paint\",\n",
    "    \"candle holder\",\n",
    "    \"guard rail\",\n",
    "    \"cyclist\",\n",
    "    \"tree branches\",\n",
    "    \"ripples\",\n",
    "    \"gear\",\n",
    "    \"waist\",\n",
    "    \"trash bin\",\n",
    "    \"onion\",\n",
    "    \"home\",\n",
    "    \"side mirror\",\n",
    "    \"brush\",\n",
    "    \"sweatband\",\n",
    "    \"handlebar\",\n",
    "    \"light pole\",\n",
    "    \"street lamp\",\n",
    "    \"pads\",\n",
    "    \"ham\",\n",
    "    \"artwork\",\n",
    "    \"reflector\",\n",
    "    \"figure\",\n",
    "    \"tile\",\n",
    "    \"mountainside\",\n",
    "    \"black\",\n",
    "    \"bricks\",\n",
    "    \"paper plate\",\n",
    "    \"stick\",\n",
    "    \"beef\",\n",
    "    \"patio\",\n",
    "    \"weeds\",\n",
    "    \"back\",\n",
    "    \"sausage\",\n",
    "    \"paws\",\n",
    "    \"farm\",\n",
    "    \"decal\",\n",
    "    \"harness\",\n",
    "    \"monkey\",\n",
    "    \"fence post\",\n",
    "    \"door frame\",\n",
    "    \"stripes\",\n",
    "    \"clocks\",\n",
    "    \"ponytail\",\n",
    "    \"toppings\",\n",
    "    \"strap\",\n",
    "    \"carton\",\n",
    "    \"greens\",\n",
    "    \"chin\",\n",
    "    \"lunch\",\n",
    "    \"name\",\n",
    "    \"earring\",\n",
    "    \"area\",\n",
    "    \"tshirt\",\n",
    "    \"t-shirt\",\n",
    "    \"t shirt\",\n",
    "    \"cream\",\n",
    "    \"rails\",\n",
    "    \"cushions\",\n",
    "    \"lanyard\",\n",
    "    \"brick\",\n",
    "    \"hallway\",\n",
    "    \"cucumber\",\n",
    "    \"wire fence\",\n",
    "    \"fern\",\n",
    "    \"tangerine\",\n",
    "    \"windowsill\",\n",
    "    \"pipes\",\n",
    "    \"package\",\n",
    "    \"wheelchair\",\n",
    "    \"chips\",\n",
    "    \"driveway\",\n",
    "    \"tattoo\",\n",
    "    \"side window\",\n",
    "    \"stairway\",\n",
    "    \"basin\",\n",
    "    \"machine\",\n",
    "    \"table lamp\",\n",
    "    \"radio\",\n",
    "    \"pony tail\",\n",
    "    \"ocean water\",\n",
    "    \"inside\",\n",
    "    \"cargo\",\n",
    "    \"overpass\",\n",
    "    \"mat\",\n",
    "    \"socket\",\n",
    "    \"flower pot\",\n",
    "    \"tree line\",\n",
    "    \"sign post\",\n",
    "    \"tube\",\n",
    "    \"dial\",\n",
    "    \"splash\",\n",
    "    \"male\",\n",
    "    \"lantern\",\n",
    "    \"lipstick\",\n",
    "    \"lip\",\n",
    "    \"tongs\",\n",
    "    \"ski suit\",\n",
    "    \"trail\",\n",
    "    \"passenger train\",\n",
    "    \"bandana\",\n",
    "    \"antelope\",\n",
    "    \"designs\",\n",
    "    \"tents\",\n",
    "    \"photograph\",\n",
    "    \"catcher's mitt\",\n",
    "    \"electrical outlet\",\n",
    "    \"tires\",\n",
    "    \"boulders\",\n",
    "    \"mannequin\",\n",
    "    \"plain\",\n",
    "    \"layer\",\n",
    "    \"mushrooms\",\n",
    "    \"strawberries\",\n",
    "    \"piece\",\n",
    "    \"oar\",\n",
    "    \"bike rack\",\n",
    "    \"slices\",\n",
    "    \"arms\",\n",
    "    \"fin\",\n",
    "    \"shadows\",\n",
    "    \"hood\",\n",
    "    \"windshield wiper\",\n",
    "    \"letter\",\n",
    "    \"dot\",\n",
    "    \"bus stop\",\n",
    "    \"railings\",\n",
    "    \"pebbles\",\n",
    "    \"mud\",\n",
    "    \"claws\",\n",
    "    \"police car\",\n",
    "    \"crown\",\n",
    "    \"meters\",\n",
    "    \"name tag\",\n",
    "    \"entrance\",\n",
    "    \"staircase\",\n",
    "    \"shrimp\",\n",
    "    \"ladies\",\n",
    "    \"peak\",\n",
    "    \"vines\",\n",
    "    \"computer keyboard\",\n",
    "    \"glass door\",\n",
    "    \"pears\",\n",
    "    \"pant\",\n",
    "    \"wine glasses\",\n",
    "    \"stall\",\n",
    "    \"asphalt\",\n",
    "    \"columns\",\n",
    "    \"sleeve\",\n",
    "    \"pack\",\n",
    "    \"cheek\",\n",
    "    \"baskets\",\n",
    "    \"land\",\n",
    "    \"day\",\n",
    "    \"blocks\",\n",
    "    \"courtyard\",\n",
    "    \"pedal\",\n",
    "    \"panel\",\n",
    "    \"seeds\",\n",
    "    \"balcony\",\n",
    "    \"yellow\",\n",
    "    \"disc\",\n",
    "    \"young man\",\n",
    "    \"eyebrows\",\n",
    "    \"crumbs\",\n",
    "    \"spinach\",\n",
    "    \"emblem\",\n",
    "    \"object\",\n",
    "    \"bar\",\n",
    "    \"cardboard\",\n",
    "    \"tissue\",\n",
    "    \"light post\",\n",
    "    \"ski jacket\",\n",
    "    \"seasoning\",\n",
    "    \"parasol\",\n",
    "    \"terminal\",\n",
    "    \"surfing\",\n",
    "    \"streetlight\",\n",
    "    \"street light\",\n",
    "    \"alley\",\n",
    "    \"cords\",\n",
    "    \"image\",\n",
    "    \"jug\",\n",
    "    \"antenna\",\n",
    "    \"puppy\",\n",
    "    \"berries\",\n",
    "    \"diamond\",\n",
    "    \"pans\",\n",
    "    \"fountain\",\n",
    "    \"foreground\",\n",
    "    \"syrup\",\n",
    "    \"bride\",\n",
    "    \"spray\",\n",
    "    \"license\",\n",
    "    \"peppers\",\n",
    "    \"passengers\",\n",
    "    \"cement\",\n",
    "    \"flags\",\n",
    "    \"shack\",\n",
    "    \"trough\",\n",
    "    \"objects\",\n",
    "    \"arches\",\n",
    "    \"streamer\",\n",
    "    \"pots\",\n",
    "    \"border\",\n",
    "    \"baseboard\",\n",
    "    \"beer bottle\",\n",
    "    \"wrist watch\",\n",
    "    \"tile floor\",\n",
    "    \"page\",\n",
    "    \"pin\",\n",
    "    \"items\",\n",
    "    \"baseline\",\n",
    "    \"hanger\",\n",
    "    \"tree branch\",\n",
    "    \"tusks\",\n",
    "    \"donkey\",\n",
    "    \"containers\",\n",
    "    \"condiments\",\n",
    "    \"device\",\n",
    "    \"envelope\",\n",
    "    \"parachute\",\n",
    "    \"mesh\",\n",
    "    \"hut\",\n",
    "    \"butterfly\",\n",
    "    \"salt\",\n",
    "    \"restroom\",\n",
    "    \"twig\",\n",
    "    \"pilot\",\n",
    "    \"ivy\",\n",
    "    \"furniture\",\n",
    "    \"clay\",\n",
    "    \"print\",\n",
    "    \"sandwiches\",\n",
    "    \"lion\",\n",
    "    \"shingles\",\n",
    "    \"pillars\",\n",
    "    \"vehicles\",\n",
    "    \"panes\",\n",
    "    \"shoreline\",\n",
    "    \"stream\",\n",
    "    \"control\",\n",
    "    \"lock\",\n",
    "    \"microphone\",\n",
    "    \"blades\",\n",
    "    \"towel rack\",\n",
    "    \"coaster\",\n",
    "    \"star\",\n",
    "    \"petals\",\n",
    "    \"text\",\n",
    "    \"feather\",\n",
    "    \"spots\",\n",
    "    \"buoy\",\n",
    "]\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2560 concepts.\n"
     ]
    }
   ],
   "source": [
    "concepts = (\n",
    "    COCO_CLASS_NAMES\n",
    "    + [v.lower().replace('_', ' ').replace(\"-\", \" \") for v in  LVIS_CLASS_NAMES]\n",
    "    + ADE20K_CLASS_NAMES\n",
    "    + [v.lower().replace('_', ' ').replace(\"-\", \" \") for v in OBJECTS365_CLASS_NAMES]\n",
    "    + [v.lower().replace('_', ' ').replace(\"-\", \" \") for v in OPEN_IMAGES_V4_BOXABLE_CLASS_NAMES]\n",
    "    + VISUAL_GENOME_CLASS_NAMES\n",
    ")\n",
    "concepts = set([name.lower() for name in concepts])\n",
    "remove = set()\n",
    "for singular in concepts:\n",
    "    for plural in [singular + \"s\", singular + \"es\"]:\n",
    "        if plural in concepts:\n",
    "            remove.add(plural)\n",
    "concepts = sorted(list(concepts.difference(remove)))\n",
    "print(len(concepts), \"concepts.\")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Build CLIP\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n",
    "model, _, preprocess = create_model_and_transforms(model_name, pretrained, force_custom_clip=True)\n",
    "tokenizer = get_tokenizer(model_name)\n",
    "model = model.to(device)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Make Concept Weights"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1024, 2560) float32 (-15.543098, 16.73902)\n"
     ]
    }
   ],
   "source": [
    "\n",
    "concept_weights = generate_concept_weights(model, tokenizer, device, concepts, ['a {}'])\n",
    "concept_weights = concept_weights * model.logit_scale.data.exp()\n",
    "concept_weights = concept_weights.cpu().numpy()\n",
    "with open('../concepts/merged.pkl', 'wb') as f:\n",
    "    pickle.dump([concept_weights, concepts], f)\n",
    "print(concept_weights.shape, concept_weights.dtype, (concept_weights.min(), concept_weights.max()))\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
